Skip to content

Commit

Permalink
Merge pull request #664 from zhouxixi-dev/dev
Browse files Browse the repository at this point in the history
bugfix: #539
  • Loading branch information
wenjianzhang authored Jul 27, 2022
2 parents b268d03 + 0d6b347 commit 4d32928
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 22 deletions.
25 changes: 7 additions & 18 deletions app/admin/apis/sys_role.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@ package apis

import (
"fmt"
"net/http"

"github.com/gin-gonic/gin/binding"
"github.com/go-admin-team/go-admin-core/sdk"
"go-admin/app/admin/models"
"net/http"

"github.com/gin-gonic/gin"
"github.com/go-admin-team/go-admin-core/sdk/api"
Expand All @@ -14,7 +15,6 @@ import (

"go-admin/app/admin/service"
"go-admin/app/admin/service/dto"
"go-admin/common/global"
)

type SysRole struct {
Expand Down Expand Up @@ -128,11 +128,7 @@ func (e SysRole) Insert(c *gin.Context) {
e.Error(500, err, "创建失败,"+err.Error())
return
}
_, err = global.LoadPolicy(c)
if err != nil {
e.Error(500, err, "")
return
}

e.OK(req.GetId(), "创建成功")
}

Expand Down Expand Up @@ -168,11 +164,7 @@ func (e SysRole) Update(c *gin.Context) {
e.Logger.Error(err)
return
}
_, err = global.LoadPolicy(c)
if err != nil {
e.Error(500, err, "")
return
}

e.OK(req.GetId(), "更新成功")
}

Expand All @@ -198,17 +190,14 @@ func (e SysRole) Delete(c *gin.Context) {
return
}

err = s.Remove(&req)
cb := sdk.Runtime.GetCasbinKey(c.Request.Host)
err = s.Remove(&req, cb)
if err != nil {
e.Logger.Error(err)
e.Error(500, err, "")
return
}
_, err = global.LoadPolicy(c)
if err != nil {
e.Error(500, err, fmt.Sprintf("删除角色 %v 失败,失败信息 %s", req.GetId(), err.Error()))
return
}

e.OK(req.GetId(), fmt.Sprintf("删除角色角色 %v 状态成功!", req.GetId()))
}

Expand Down
21 changes: 17 additions & 4 deletions app/admin/service/sys_role.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package service

import (
"errors"

"github.com/go-admin-team/go-admin-core/sdk/config"
"gorm.io/gorm/clause"

Expand Down Expand Up @@ -102,12 +103,21 @@ func (e *SysRole) Insert(c *dto.SysRoleInsertReq, cb *casbin.SyncedEnforcer) err
return err
}

mp := make(map[string]interface{}, 0)
polices := make([][]string, 0)
for _, menu := range dataMenu {
for _, api := range menu.SysApi {
_, err = cb.AddNamedPolicy("p", data.RoleKey, api.Path, api.Action)
if mp[data.RoleKey+"-"+api.Path+"-"+api.Action] != "" {
mp[data.RoleKey+"-"+api.Path+"-"+api.Action] = ""
polices = append(polices, []string{data.RoleKey, api.Path, api.Action})
}
}
}
_ = cb.SavePolicy()
_, err = cb.AddNamedPolicies("p", polices)
if err != nil {
return err
}

//if len(c.MenuIds) > 0 {
// s := SysRoleMenu{}
// s.Orm = e.Orm
Expand Down Expand Up @@ -176,12 +186,12 @@ func (e *SysRole) Update(c *dto.SysRoleUpdateReq, cb *casbin.SyncedEnforcer) err
if err != nil {
return err
}
_ = cb.SavePolicy()

return nil
}

// Remove 删除SysRole
func (e *SysRole) Remove(c *dto.SysRoleDeleteReq) error {
func (e *SysRole) Remove(c *dto.SysRoleDeleteReq, cb *casbin.SyncedEnforcer) error {
var err error
tx := e.Orm
if config.DatabaseConfig.Driver != "sqlite3" {
Expand All @@ -205,6 +215,9 @@ func (e *SysRole) Remove(c *dto.SysRoleDeleteReq) error {
if db.RowsAffected == 0 {
return errors.New("无权更新该数据")
}

_, _ = cb.RemoveFilteredPolicy(0, model.RoleKey)

return nil
}

Expand Down

0 comments on commit 4d32928

Please sign in to comment.