permission.go 842 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package middleware
  2. import (
  3. "fmt"
  4. "net/http"
  5. "github.com/gin-gonic/gin"
  6. mycasbin "device-manage/pkg/casbin"
  7. "device-manage/pkg/jwtauth"
  8. "device-manage/tools"
  9. )
  10. //权限检查中间件
  11. func AuthCheckRole() gin.HandlerFunc {
  12. return func(c *gin.Context) {
  13. data, _ := c.Get(jwtauth.JwtPayloadKey)
  14. v := data.(jwtauth.MapClaims)
  15. e := mycasbin.Casbin()
  16. //检查权限
  17. res, err := e.Enforce(v["rolekey"], c.Request.URL.Path, c.Request.Method)
  18. tools.HasError(err, "", 500)
  19. fmt.Println(res)
  20. fmt.Printf("%s [INFO] %s %s %s \r\n",
  21. tools.GetCurrentTimeStr(),
  22. c.Request.Method,
  23. c.Request.URL.Path,
  24. v["rolekey"],
  25. )
  26. if res {
  27. c.Next()
  28. } else {
  29. c.JSON(http.StatusOK, gin.H{
  30. "code": 403,
  31. "msg": "对不起,您没有该接口访问权限,请联系管理员",
  32. })
  33. c.Abort()
  34. return
  35. }
  36. }
  37. }