bug: the latest database table, modify the associated deletion method of menu and authority

This commit is contained in:
QM303176530
2020-04-06 13:42:41 +08:00
parent 1e4daaba4e
commit 79254bd64c
13 changed files with 143 additions and 110 deletions

View File

@@ -40,17 +40,22 @@ func (a *SysAuthority) CreateAuthority() (err error, authority *SysAuthority) {
// 删除角色
func (a *SysAuthority) DeleteAuthority() (err error) {
err = global.GVA_DB.Where("authority_id = ?", a.AuthorityId).Find(&SysUser{}).Error
if err != nil {
err = global.GVA_DB.Where("parent_id = ?", a.AuthorityId).Find(&SysAuthority{}).Error
if err != nil {
err = global.GVA_DB.Preload("SysBaseMenus").Where("authority_id = ?", a.AuthorityId).First(a).Unscoped().Delete(a).Association("SysBaseMenus").Delete(a.SysBaseMenus).Error
new(CasbinModel).ClearCasbin(0, a.AuthorityId)
} else {
err = errors.New("此角色存在子角色不允许删除")
}
} else {
if err == nil {
err = errors.New("此角色有用户正在使用禁止删除")
return
}
err = global.GVA_DB.Where("parent_id = ?", a.AuthorityId).Find(&SysAuthority{}).Error
if err == nil {
err = errors.New("此角色存在子角色不允许删除")
return
}
db := global.GVA_DB.Preload("SysBaseMenus").Where("authority_id = ?", a.AuthorityId).First(a).Unscoped().Delete(a)
if len(a.SysBaseMenus) > 0 {
err = db.Association("SysBaseMenus").Delete(a.SysBaseMenus).Error
} else {
err = db.Error
}
new(CasbinModel).ClearCasbin(0, a.AuthorityId)
return err
}