From 386c620b48c2796c359881f9617a129c87106e30 Mon Sep 17 00:00:00 2001 From: wenjianzhang Date: Thu, 19 Aug 2021 19:04:03 +0800 Subject: [PATCH] =?UTF-8?q?refactor=F0=9F=8E=A8:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=BF=AE=E6=94=B9=E6=97=B6=E5=BE=AA=E7=8E=AF?= =?UTF-8?q?AddNamedPolicy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/service/sys_role.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/admin/service/sys_role.go b/app/admin/service/sys_role.go index 7f9d71b5..ab374822 100644 --- a/app/admin/service/sys_role.go +++ b/app/admin/service/sys_role.go @@ -142,12 +142,21 @@ func (e *SysRole) Update(c *dto.SysRoleUpdateReq, cb *casbin.SyncedEnforcer) err e.Log.Errorf("delete policy error:%s", err) return err } - + mp:=make(map [string] interface{} ,0) + polices := make([][]string, 0) for _, menu := range mlist { for _, api := range menu.SysApi { - _, err = cb.AddNamedPolicy("p", model.RoleKey, api.Path, api.Action) + if mp[model.RoleKey+"-"+api.Path+"-"+api.Action] != "" { + mp[model.RoleKey+"-"+api.Path+"-"+api.Action] = "" + //_, err = cb.AddNamedPolicy("p", model.RoleKey, api.Path, api.Action) + polices = append(polices, []string{model.RoleKey, api.Path, api.Action}) + } } } + _, err = cb.AddNamedPolicies("p", polices) + if err != nil { + return err + } _ = cb.SavePolicy() return nil }