fix(permission): change permission checking

read permissions from settings.json instead
This commit is contained in:
pakintada@gmail.com 2024-03-18 14:11:24 +07:00
parent 8744ddcb8c
commit cd0f67bb44
6 changed files with 128 additions and 60 deletions

View file

@ -3,15 +3,17 @@ package routers
import (
"context"
"encoding/json"
"github.com/go-chi/chi/v5"
"go.uber.org/zap"
"net/http"
"recipe-manager/contracts"
"recipe-manager/enums/permissions"
"recipe-manager/helpers"
"recipe-manager/middlewares"
"recipe-manager/services/logger"
"recipe-manager/services/user"
"time"
"github.com/go-chi/chi/v5"
"go.uber.org/zap"
)
type UserRouter struct {
@ -25,16 +27,23 @@ func NewUserRouter(taoLogger *logger.TaoLogger, userService user.UserService) *U
func (ur *UserRouter) Route(r chi.Router) {
// Generate SuperAdmin permissions for seed
perms := helpers.LoadCountrySettingsWithPermissions()
superPerm := perms[0].CountryPermission
for _, p := range perms {
superPerm = superPerm | p.CountryPermission
}
// Users
r.Route("/users", func(r chi.Router) {
r.Get("/", middlewares.ValidatePermissions([]permissions.Permission{permissions.SuperAdmin}, ur.getUsers))
r.Get("/", middlewares.ValidatePermissions([]permissions.Permission{permissions.Permission(superPerm)}, ur.getUsers))
r.Post("/", middlewares.ValidatePermissions([]permissions.Permission{permissions.SuperAdmin}, ur.createUser))
r.Post("/", middlewares.ValidatePermissions([]permissions.Permission{permissions.Permission(superPerm)}, ur.createUser))
})
// User
r.Route("/user", func(r chi.Router) {
r.Get("/{id}", middlewares.ValidateOwnerOrPermissions([]permissions.Permission{permissions.SuperAdmin}, ur.getUser))
r.Get("/{id}", middlewares.ValidateOwnerOrPermissions([]permissions.Permission{permissions.Permission(superPerm)}, ur.getUser))
})
}