diff --git a/api/controller/adminRole.go b/api/controller/adminRole.go index b7b2b33..dfccf66 100644 --- a/api/controller/adminRole.go +++ b/api/controller/adminRole.go @@ -187,8 +187,16 @@ func (r *Role) GetRole(c *gin.Context) { return } + // 获取角色身份 + roleService := service.RoleService{} + isAdmin, err := roleService.GetRoleIden(c) + if err != nil { + responses.FailWithMessage(err.Error(), c) + return + } + RoleService := service.RoleService{} - adminRole, menuIds, err := RoleService.GetRole(roleId) + adminRole, menuIds, err := RoleService.GetRole(roleId, isAdmin) if err != nil { responses.FailWithMessage(err.Error(), c) return diff --git a/api/service/role.go b/api/service/role.go index 0fb910b..0f5bfb1 100644 --- a/api/service/role.go +++ b/api/service/role.go @@ -140,7 +140,7 @@ func (r *RoleService) PutRoleStatus(roleId int64, roleStatus int) (bool, error) } // GetRole 角色详情 -func (r *RoleService) GetRole(roleId int64) (adminRole *model.AdminRole, menuIds []int64, err error) { +func (r *RoleService) GetRole(roleId int64, isAdmin bool) (adminRole *model.AdminRole, menuIds []int64, err error) { // 获取请求角色数据 AdminRoleDao := dao.AdminRoleDao{} adminRole, err = AdminRoleDao.GetAdminRoleFirstById(roleId) @@ -149,10 +149,18 @@ func (r *RoleService) GetRole(roleId int64) (adminRole *model.AdminRole, menuIds } // 获取角色权限菜单id - AdminRoleMenuDao := dao.AdminRoleMenuDao{} - menuIds, err = AdminRoleMenuDao.GetAdminRoleMenuIdByRoleId(roleId) - if err != nil { - return nil, nil, errors.New("角色权限菜单获取失败") + if isAdmin { + adminMenuDao := dao.AdminMenuDao{} + menuIds, err = adminMenuDao.GetAdminMenuId() + if err != nil { + return nil, nil, errors.New("角色权限菜单获取失败") + } + } else { + AdminRoleMenuDao := dao.AdminRoleMenuDao{} + menuIds, err = AdminRoleMenuDao.GetAdminRoleMenuIdByRoleId(roleId) + if err != nil { + return nil, nil, errors.New("角色权限菜单获取失败") + } } return adminRole, menuIds, nil