Added sub commands for doing admin stuff
This commit is contained in:
parent
329de2f953
commit
4a6b79db17
18 changed files with 531 additions and 185 deletions
|
|
@ -3,12 +3,14 @@ package middleware
|
|||
import (
|
||||
"strconv"
|
||||
|
||||
"emperror.dev/errors"
|
||||
"github.com/gofiber/fiber/v3"
|
||||
"lmika.dev/lmika/weiro/models"
|
||||
"lmika.dev/lmika/weiro/providers/db"
|
||||
"lmika.dev/lmika/weiro/services/sites"
|
||||
)
|
||||
|
||||
func RequiresSite(db *db.Provider) func(c fiber.Ctx) error {
|
||||
func RequiresSite(sites *sites.Service) func(c fiber.Ctx) error {
|
||||
return func(c fiber.Ctx) error {
|
||||
siteIDStr := c.Params("siteID")
|
||||
if siteIDStr == "" {
|
||||
|
|
@ -20,18 +22,15 @@ func RequiresSite(db *db.Provider) func(c fiber.Ctx) error {
|
|||
return fiber.ErrBadRequest
|
||||
}
|
||||
|
||||
user, ok := models.GetUser(c.Context())
|
||||
if !ok {
|
||||
return fiber.ErrUnauthorized
|
||||
}
|
||||
|
||||
site, err := db.SelectSiteByID(c.Context(), siteID)
|
||||
site, err := sites.GetSiteByID(c.Context(), siteID)
|
||||
if err != nil {
|
||||
return fiber.ErrNotFound
|
||||
}
|
||||
|
||||
if site.OwnerID != user.ID {
|
||||
return fiber.ErrForbidden
|
||||
if errors.Is(err, models.UserRequiredError) {
|
||||
return fiber.ErrForbidden
|
||||
} else if errors.Is(err, models.PermissionError) || db.ErrorIsNoRows(err) {
|
||||
return fiber.ErrNotFound
|
||||
} else if errors.Is(err, models.NotFoundError) || db.ErrorIsNoRows(err) {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
c.Locals("site", site)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue