filter.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package routers
  2. import (
  3. "Cold_GoodsOrder/Nats/NatsServer"
  4. "Cold_GoodsOrder/lib"
  5. "Cold_GoodsOrder/models/Account"
  6. "github.com/beego/beego/v2/server/web/context"
  7. "log"
  8. "strings"
  9. )
  10. func RBACFilter(ctx *context.Context) {
  11. //过滤/v3/Order/GetDeviceData接口不验证登录
  12. log.Println(ctx.Request.URL.String())
  13. if strings.Contains(ctx.Request.URL.String(), "/v3/Order/GetDeviceDataNot") || strings.Contains(ctx.Request.URL.String(), "/Cold_GoodsOrder/v3/Order/Test") {
  14. return
  15. }
  16. b_, User_r, T_pid := NatsServer.Verification(ctx.GetCookie("User_tokey"), ctx.Input.Query("User_tokey"))
  17. if !b_ {
  18. ctx.Output.JSON(lib.JSONS{Code: 201, Msg: "请重新登陆!"}, true, false)
  19. return
  20. }
  21. Account.User_r = &User_r
  22. Account.T_pid = &T_pid
  23. index := strings.Index(ctx.Request.URL.Path, "/v3")
  24. if index == -1 {
  25. data := lib.JSONS{Code: 202, Msg: "无权访问!"}
  26. ctx.Output.JSON(data, true, false)
  27. }
  28. flag := NatsServer.CheckUserPermissions(Account.User_r.T_power, ctx.Request.URL.Path[index:])
  29. if !flag {
  30. data := lib.JSONS{Code: 202, Msg: "无权访问!"}
  31. ctx.Output.JSON(data, true, false)
  32. return
  33. }
  34. }