From a8caeb789dfa3fa2f668fa62554147dc73256d3e Mon Sep 17 00:00:00 2001 From: piexlmax <303176530@qq.com> Date: Thu, 24 Feb 2022 10:51:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=85=B6=E4=BB=96=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=AF=B9=E6=8C=89=E9=92=AE=E6=9D=83=E9=99=90=E4=BA=A7?= =?UTF-8?q?=E7=94=9F=E7=9A=84=E5=BD=B1=E5=93=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/service/system/sys_authority.go | 18 ++++++++++++++++++ server/service/system/sys_base_menu.go | 2 ++ 2 files changed, 20 insertions(+) diff --git a/server/service/system/sys_authority.go b/server/service/system/sys_authority.go index 77d82343..c4971a7c 100644 --- a/server/service/system/sys_authority.go +++ b/server/service/system/sys_authority.go @@ -57,6 +57,23 @@ func (authorityService *AuthorityService) CopyAuthority(copyInfo response.SysAut if err != nil { return } + + var btns []system.SysAuthorityBtn + + err = global.GVA_DB.Find(&btns, "authority_id = ?", copyInfo.OldAuthorityId).Error + if err != nil { + return + } + for i := range btns { + btns[i].AuthorityId = copyInfo.Authority.AuthorityId + } + + err = global.GVA_DB.Create(&btns).Error + + if err != nil { + return + } + paths := CasbinServiceApp.GetPolicyPathByAuthorityId(copyInfo.OldAuthorityId) err = CasbinServiceApp.UpdateCasbin(copyInfo.Authority.AuthorityId, paths) if err != nil { @@ -113,6 +130,7 @@ func (authorityService *AuthorityService) DeleteAuthority(auth *system.SysAuthor } } err = global.GVA_DB.Delete(&[]system.SysUseAuthority{}, "sys_authority_authority_id = ?", auth.AuthorityId).Error + err = global.GVA_DB.Delete(&[]system.SysAuthorityBtn{}, "authority_id = ?", auth.AuthorityId).Error CasbinServiceApp.ClearCasbin(0, auth.AuthorityId) return err } diff --git a/server/service/system/sys_base_menu.go b/server/service/system/sys_base_menu.go index 4b9927d3..cc86a8c9 100644 --- a/server/service/system/sys_base_menu.go +++ b/server/service/system/sys_base_menu.go @@ -22,6 +22,8 @@ func (baseMenuService *BaseMenuService) DeleteBaseMenu(id float64) (err error) { var menu system.SysBaseMenu db := global.GVA_DB.Preload("SysAuthoritys").Where("id = ?", id).First(&menu).Delete(&menu) err = global.GVA_DB.Delete(&system.SysBaseMenuParameter{}, "sys_base_menu_id = ?", id).Error + err = global.GVA_DB.Delete(&system.SysBaseMenuBtn{}, "sys_base_menu_id = ?", id).Error + err = global.GVA_DB.Delete(&system.SysAuthorityBtn{}, "sys_menu_id = ?", id).Error if err != nil { return err } -- GitLab