修复登录后未能按照用户实际菜单权限加载菜单的 (#4)

This commit is contained in:
xinyuandd 2022-05-31 20:02:18 +08:00 committed by GitHub
parent 80be71efca
commit 6d437b49c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 2 deletions

View File

@ -168,9 +168,16 @@ func (l MenuLogic) GetTree(c *gin.Context, req interface{}) (data interface{}, r
return nil, ReqAssertErr
}
_ = c
ctxUser, err := isql.User.GetCurrentLoginUser(c)
if err != nil {
return nil, tools.NewMySqlError(fmt.Errorf("获取当前登陆用户信息失败"))
}
roleIds := []uint{}
for _, role := range ctxUser.Roles {
roleIds = append(roleIds, role.ID)
}
var menus []*model.Menu
menus, err := isql.Menu.List()
menus, err = isql.Menu.ListUserMenus(roleIds)
if err != nil {
return nil, tools.NewMySqlError(fmt.Errorf("获取资源列表失败: " + err.Error()))
}

View File

@ -47,6 +47,12 @@ func (s MenuService) List() (menus []*model.Menu, err error) {
return menus, err
}
// List 获取数据列表
func (s MenuService) ListUserMenus(roleIds []uint) (menus []*model.Menu, err error) {
err = common.DB.Where("id IN (select menu_id as id from role_menus where role_id IN (?))", roleIds).Order("sort").Find(&menus).Error
return menus, err
}
// 批量删除资源
func (s MenuService) Delete(menuIds []uint) error {
return common.DB.Where("id IN (?)", menuIds).Select("Roles").Unscoped().Delete(&model.Menu{}).Error