chore: address pull request review issues
This commit is contained in:
@@ -2,27 +2,27 @@ package middleware
|
||||
|
||||
import (
|
||||
"git.ma-al.com/goc_daniel/b2b/app/delivery/middleware/perms"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/model"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/localeExtractor"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/nullable"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/response"
|
||||
"git.ma-al.com/goc_daniel/b2b/app/utils/responseErrors"
|
||||
"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)
|
||||
user, ok := localeExtractor.GetCustomer(c)
|
||||
if !ok {
|
||||
return c.SendStatus(fiber.StatusInternalServerError)
|
||||
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrInvalidBody)).
|
||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrInvalidBody)))
|
||||
}
|
||||
|
||||
for _, perm := range user.Permissions {
|
||||
if perm == p {
|
||||
for _, perm := range user.Role.Permissions {
|
||||
if perm.Name == p {
|
||||
return c.Next()
|
||||
}
|
||||
}
|
||||
return c.SendStatus(fiber.StatusForbidden)
|
||||
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrForbidden)).
|
||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrForbidden)))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user