permission.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package middleware
  2. import (
  3. "gadmin/config"
  4. "gadmin/internal/admin/consts"
  5. "gadmin/internal/gorm/query"
  6. "gadmin/utility/serializer"
  7. "gadmin/utility/token"
  8. "github.com/gin-gonic/gin"
  9. )
  10. // Permission 验证权限
  11. func Permission() gin.HandlerFunc {
  12. return func(c *gin.Context) {
  13. cUser, ok := c.Get("user")
  14. if !ok {
  15. c.JSON(200, serializer.Err(consts.CodeNoPermission, "登陆失效", nil))
  16. c.Abort()
  17. return
  18. }
  19. user := cUser.(*token.UserClaims)
  20. q := query.Use(config.AdminDB).AdminUser
  21. c.Set("admin_id", user.ID)
  22. models, err := q.WithContext(c).Where(q.ID.Eq(user.ID)).First()
  23. if err != nil {
  24. c.JSON(200, serializer.Err(consts.CodeNoPermission, err.Error(), err))
  25. c.Abort()
  26. return
  27. }
  28. if models == nil {
  29. c.JSON(200, serializer.Err(consts.CodeNoPermission, "用户不存在", nil))
  30. c.Abort()
  31. return
  32. }
  33. if models.Status != 1 {
  34. c.JSON(200, serializer.Err(consts.CodeCheckLogin, "账号已被禁用", nil))
  35. c.Abort()
  36. return
  37. }
  38. systemId := user.SystemId
  39. /*if systemId <= 0 {
  40. c.JSON(200, serializer.Err(consts.CodeNoPermission, "登陆失效", nil))
  41. c.Abort()
  42. }*/
  43. if models.UserName != "mojun" {
  44. if err := config.ValidityAuth(int64(models.RoleID), c.Request.Method, c.Request.URL.Path, systemId); err != nil {
  45. c.JSON(200, serializer.Err(consts.CodeNoPermission, err.Error(), err))
  46. c.Abort()
  47. return
  48. }
  49. }
  50. c.Next()
  51. return
  52. }
  53. }