sys_casbin.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. package system
  2. import (
  3. "github.com/flipped-aurora/gin-vue-admin/server/global"
  4. "github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
  5. "github.com/flipped-aurora/gin-vue-admin/server/model/system/request"
  6. systemRes "github.com/flipped-aurora/gin-vue-admin/server/model/system/response"
  7. "github.com/flipped-aurora/gin-vue-admin/server/utils"
  8. "github.com/gin-gonic/gin"
  9. "go.uber.org/zap"
  10. )
  11. type CasbinApi struct{}
  12. // UpdateCasbin
  13. // @Tags Casbin
  14. // @Summary 更新角色api权限
  15. // @Security ApiKeyAuth
  16. // @accept application/json
  17. // @Produce application/json
  18. // @Param data body request.CasbinInReceive true "权限id, 权限模型列表"
  19. // @Success 200 {object} response.Response{msg=string} "更新角色api权限"
  20. // @Router /casbin/UpdateCasbin [post]
  21. func (cas *CasbinApi) UpdateCasbin(c *gin.Context) {
  22. var cmr request.CasbinInReceive
  23. err := c.ShouldBindJSON(&cmr)
  24. if err != nil {
  25. response.FailWithMessage(err.Error(), c)
  26. return
  27. }
  28. err = utils.Verify(cmr, utils.AuthorityIdVerify)
  29. if err != nil {
  30. response.FailWithMessage(err.Error(), c)
  31. return
  32. }
  33. adminAuthorityID := utils.GetUserAuthorityId(c)
  34. err = casbinService.UpdateCasbin(adminAuthorityID, cmr.AuthorityId, cmr.CasbinInfos)
  35. if err != nil {
  36. global.GVA_LOG.Error("更新失败!", zap.Error(err))
  37. response.FailWithMessage("更新失败", c)
  38. return
  39. }
  40. response.OkWithMessage("更新成功", c)
  41. }
  42. // GetPolicyPathByAuthorityId
  43. // @Tags Casbin
  44. // @Summary 获取权限列表
  45. // @Security ApiKeyAuth
  46. // @accept application/json
  47. // @Produce application/json
  48. // @Param data body request.CasbinInReceive true "权限id, 权限模型列表"
  49. // @Success 200 {object} response.Response{data=systemRes.PolicyPathResponse,msg=string} "获取权限列表,返回包括casbin详情列表"
  50. // @Router /casbin/getPolicyPathByAuthorityId [post]
  51. func (cas *CasbinApi) GetPolicyPathByAuthorityId(c *gin.Context) {
  52. var casbin request.CasbinInReceive
  53. err := c.ShouldBindJSON(&casbin)
  54. if err != nil {
  55. response.FailWithMessage(err.Error(), c)
  56. return
  57. }
  58. err = utils.Verify(casbin, utils.AuthorityIdVerify)
  59. if err != nil {
  60. response.FailWithMessage(err.Error(), c)
  61. return
  62. }
  63. paths := casbinService.GetPolicyPathByAuthorityId(casbin.AuthorityId)
  64. response.OkWithDetailed(systemRes.PolicyPathResponse{Paths: paths}, "获取成功", c)
  65. }