permission_check.go 793 B

12345678910111213141516171819202122232425262728
  1. package middleware
  2. import (
  3. "fmt"
  4. "surveyService/response"
  5. "surveyService/util"
  6. "surveyService/util/constants"
  7. "github.com/gin-gonic/gin"
  8. "gogs.uu.mdfitnesscao.com/hys/sdk"
  9. sdk_constants "gogs.uu.mdfitnesscao.com/hys/sdk/constants"
  10. )
  11. func PermissionCheck(routePermission string) gin.HandlerFunc {
  12. return func(c *gin.Context) {
  13. currentUser, _ := util.GetFromGinContext[*sdk.AuthUser](c, constants.UserCacheKey)
  14. if !currentUser.FullPermission {
  15. if !util.InArrayString(routePermission, currentUser.Permissions) {
  16. response.Fail(c, &response.ErrCode{
  17. Code: response.PERMISSION_NOT_ALLOWED,
  18. Msg: fmt.Sprintf("您没有权限进行该操作,缺少权限【%s】", sdk_constants.UserPermissionNames[routePermission].Name),
  19. })
  20. return
  21. }
  22. }
  23. c.Next()
  24. }
  25. }