feat: roles, permissions

This commit is contained in:
2026-04-02 15:06:00 +02:00
parent 6428ddb527
commit 0ed9d792b6
22 changed files with 391 additions and 80 deletions

View File

@@ -0,0 +1,28 @@
package middleware
import (
"git.ma-al.com/goc_daniel/b2b/app/delivery/middleware/perms"
"git.ma-al.com/goc_daniel/b2b/app/model"
"github.com/gofiber/fiber/v3"
)
func Require(p perms.Permission) fiber.Handler {
return func(c fiber.Ctx) error {
u := c.Locals("user")
if u == nil {
return c.SendStatus(fiber.StatusUnauthorized)
}
user, ok := u.(*model.UserSession)
if !ok {
return c.SendStatus(fiber.StatusInternalServerError)
}
for _, perm := range user.Permissions {
if perm == p {
return c.Next()
}
}
return c.SendStatus(fiber.StatusForbidden)
}
}