Skip to content

Commit 163b76b

Browse files
author
piexlmax
committed
修改角色删除逻辑,有用户占用状态的角色禁止删除
1 parent d1636b1 commit 163b76b

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

server/model/system/sys_authority.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,6 @@ type SysAuthority struct {
1414
DataAuthorityId []SysAuthority `json:"dataAuthorityId" gorm:"many2many:sys_data_authority_id"`
1515
Children []SysAuthority `json:"children" gorm:"-"`
1616
SysBaseMenus []SysBaseMenu `json:"menus" gorm:"many2many:sys_authority_menus;"`
17-
DefaultRouter string `json:"defaultRouter" gorm:"comment:默认菜单;default:dashboard" example:"dashboard"` // 默认菜单(默认dashboard)
17+
Users []SysUser `json:"-" gorm:"many2many:sys_user_authority;"`
18+
DefaultRouter string `json:"defaultRouter" gorm:"comment:默认菜单;default:dashboard"` // 默认菜单(默认dashboard)
1819
}

server/service/system/sys_authority.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,12 @@ func (authorityService *AuthorityService) UpdateAuthority(auth system.SysAuthori
8383
//@return: err error
8484

8585
func (authorityService *AuthorityService) DeleteAuthority(auth *system.SysAuthority) (err error) {
86+
if errors.Is(global.GVA_DB.Debug().Preload("Users").First(&auth).Error, gorm.ErrRecordNotFound) {
87+
return errors.New("该角色不存在")
88+
}
89+
if len(auth.Users) != 0 {
90+
return errors.New("此角色有用户正在使用禁止删除")
91+
}
8692
if !errors.Is(global.GVA_DB.Where("authority_id = ?", auth.AuthorityId).First(&system.SysUser{}).Error, gorm.ErrRecordNotFound) {
8793
return errors.New("此角色有用户正在使用禁止删除")
8894
}

0 commit comments

Comments
 (0)