diff --git a/server/service/system/sys_authority.go b/server/service/system/sys_authority.go index 77d823432c99927491af1dce3db539f17a532eb9..c4971a7ce88efe87b22fcbed3f50a5c4241cca2d 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 4b9927d3429a2712c456bb13d9c0728cb43ada4e..cc86a8c9d9e6cf0109a3c72eab8550c70f2d94f3 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 }