permission_check.go 543 B

1234567891011121314151617181920212223
  1. package middleware
  2. import (
  3. "authService/response"
  4. "authService/util"
  5. "authService/util/constants"
  6. "authService/validators"
  7. "github.com/gin-gonic/gin"
  8. )
  9. func PermissionCheck(routePermission string) gin.HandlerFunc {
  10. return func(c *gin.Context) {
  11. currentUser, _ := util.GetFromGinContext[*validators.AuthUser](c, constants.UserCacheKey)
  12. if !currentUser.FullPermission {
  13. if !util.InArrayString(routePermission, currentUser.Permissions) {
  14. response.Fail(c, response.ErrPermissionNotAllowed)
  15. return
  16. }
  17. }
  18. c.Next()
  19. }
  20. }