提交 6dd70d2a 编写于 作者: Mr.奇淼('s avatar Mr.奇淼(

修复了api唯一key关联的bug,修复了角色删除失败的bug

上级 0cc15b5d
......@@ -41,7 +41,7 @@ func DeleteAuthority(c *gin.Context) {
var a model.SysAuthority
_ = c.ShouldBindJSON(&a)
//删除角色之前需要判断是否有用户正在使用此角色
err := service.DeleteAuthority(a)
err := service.DeleteAuthority(&a)
if err != nil {
response.FailWithMessage(fmt.Sprintf("删除失败,%v", err), c)
} else {
......
package response
type PolicyPathResponse struct {
Paths []string `json:"paths"`
Paths []map[string]string `json:"paths"`
}
......@@ -24,7 +24,7 @@ func CreateAuthority(auth model.SysAuthority) (err error, authority model.SysAut
// @param auth model.SysAuthority
// @return error
// 删除角色
func DeleteAuthority(auth model.SysAuthority) (err error) {
func DeleteAuthority(auth *model.SysAuthority) (err error) {
err = global.GVA_DB.Where("authority_id = ?", auth.AuthorityId).Find(&model.SysUser{}).Error
if err == nil {
err = errors.New("此角色有用户正在使用禁止删除")
......
......@@ -55,7 +55,7 @@ func AddCasbin(cm model.CasbinModel) bool {
// @return error
func UpdateCasbinApi(oldPath string, newPath string, oldMethod string, newMethod string) error {
var cs []model.CasbinModel
err := global.GVA_DB.Table("casbin_rule").Where("v1 = ? AND v2 = ?", oldPath,oldMethod).Find(&cs).Updates(map[string]string{
err := global.GVA_DB.Table("casbin_rule").Where("v1 = ? AND v2 = ?", oldPath, oldMethod).Find(&cs).Updates(map[string]string{
"v1": newPath,
"v2": newMethod,
}).Error
......@@ -67,14 +67,16 @@ func UpdateCasbinApi(oldPath string, newPath string, oldMethod string, newMetho
// @auth (2020/04/05 20:22)
// @param authorityId string
// @return []string
func GetPolicyPathByAuthorityId(authorityId string) []string {
func GetPolicyPathByAuthorityId(authorityId string) (pathMaps []map[string]string) {
e := Casbin()
var pathList []string
list := e.GetFilteredPolicy(0, authorityId)
for _, v := range list {
pathList = append(pathList, v[1])
pathMaps = append(pathMaps, map[string]string{
"path": v[1],
"method": v[2],
})
}
return pathList
return pathMaps
}
// @title ClearCasbin
......
......@@ -9,7 +9,7 @@
:props="apiDefaultProps"
default-expand-all
highlight-current
node-key="path"
node-key="onlyId"
ref="apiTree"
show-checkbox
></el-tree>
......@@ -44,6 +44,7 @@ export default {
const apiObj = new Object()
apis &&
apis.map(item => {
item.onlyId = "p:"+item.path+"m:"+item.method
if (apiObj.hasOwnProperty(item.apiGroup)) {
apiObj[item.apiGroup].push(item)
} else {
......@@ -85,13 +86,16 @@ export default {
// 获取api并整理成树结构
const res2 = await getAllApis()
const apis = res2.data.apis
this.apiTreeData = this.buildApiTree(apis)
this.apiTreeData = this.buildApiTree(apis)
const res = await getPolicyPathByAuthorityId({
authorityId: this.row.authorityId
})
this.activeUserId = this.row.authorityId
this.apiTreeIds = res.data.paths || []
this.apiTreeIds = []
res.data.paths&&res.data.paths.map(item=>{
this.apiTreeIds.push("p:"+item.path+"m:"+item.method)
})
}
}
</script>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册