sys_casbin.go 2.4 KB
Newer Older
Mr.奇淼('s avatar
Mr.奇淼( 已提交
1
package v1
2 3 4

import (
	"fmt"
Mr.奇淼('s avatar
Mr.奇淼( 已提交
5
	"gin-vue-admin/global/response"
6
	"gin-vue-admin/model/request"
7
	resp "gin-vue-admin/model/response"
8
	"gin-vue-admin/service"
9
	"gin-vue-admin/utils"
10 11 12 13 14 15 16 17
	"github.com/gin-gonic/gin"
)

// @Tags casbin
// @Summary 更改角色api权限
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
Mr.奇淼('s avatar
Mr.奇淼( 已提交
18
// @Param data body request.CasbinInReceive true "更改角色api权限"
19
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
R
rainyan 已提交
20 21
// @Router /casbin/UpdateCasbin [post]
func UpdateCasbin(c *gin.Context) {
22
	var cmr request.CasbinInReceive
23
	_ = c.ShouldBindJSON(&cmr)
24 25 26 27 28 29 30 31
	CasbinVerify := utils.Rules{
		"AuthorityId":      {utils.NotEmpty()},
	}
	WKVerifyErr := utils.Verify(cmr, CasbinVerify)
	if WKVerifyErr!=nil {
		response.FailWithMessage(WKVerifyErr.Error(), c)
		return
	}
32
	err := service.UpdateCasbin(cmr.AuthorityId, cmr.CasbinInfos)
33
	if err != nil {
34
		response.FailWithMessage(fmt.Sprintf("添加规则失败,%v", err), c)
35
	} else {
36
		response.OkWithMessage("添加规则成功", c)
37 38 39 40 41 42 43 44
	}
}

// @Tags casbin
// @Summary 获取权限列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
Mr.奇淼('s avatar
Mr.奇淼( 已提交
45
// @Param data body request.CasbinInReceive true "获取权限列表"
46
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
47
// @Router /casbin/getPolicyPathByAuthorityId [post]
48
func GetPolicyPathByAuthorityId(c *gin.Context) {
49
	var cmr request.CasbinInReceive
50
	_ = c.ShouldBindJSON(&cmr)
51 52 53 54 55 56 57 58
	CasbinVerify := utils.Rules{
		"AuthorityId":      {utils.NotEmpty()},
	}
	WKVerifyErr := utils.Verify(cmr, CasbinVerify)
	if WKVerifyErr!=nil {
		response.FailWithMessage(WKVerifyErr.Error(), c)
		return
	}
59
	paths := service.GetPolicyPathByAuthorityId(cmr.AuthorityId)
60
	response.OkWithData(resp.PolicyPathResponse{Paths: paths}, c)
61
}
62 63 64 65 66 67

// @Tags casbin
// @Summary casb RBAC RESTFUL测试路由
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
Mr.奇淼('s avatar
Mr.奇淼( 已提交
68
// @Param data body request.CasbinInReceive true "获取权限列表"
69 70 71 72 73 74
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /casbin/CasbinTest [get]
func CasbinTest(c *gin.Context) {
	// 测试restful以及占位符代码  随意书写
	pathParam := c.Param("pathParam")
	query := c.Query("query")
75
	response.OkDetailed(gin.H{"pathParam": pathParam, "query": query}, "获取规则成功", c)
76
}