mirror of https://gitee.com/stylefeng/roses
【7.2.5】【role】更新角色授权界面的条件
parent
d658560b21
commit
f17273fd5b
|
@ -24,6 +24,7 @@
|
||||||
*/
|
*/
|
||||||
package cn.stylefeng.roses.kernel.system.api.enums;
|
package cn.stylefeng.roses.kernel.system.api.enums;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,4 +60,23 @@ public enum AntdvFrontTypeEnum {
|
||||||
this.message = message;
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转化int为枚举类型
|
||||||
|
*
|
||||||
|
* @author fengshuonan
|
||||||
|
* @date 2022/9/29 15:50
|
||||||
|
*/
|
||||||
|
public static AntdvFrontTypeEnum parseToEnum(Integer originValue) {
|
||||||
|
if (ObjectUtil.isEmpty(originValue)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
for (AntdvFrontTypeEnum value : AntdvFrontTypeEnum.values()) {
|
||||||
|
if (value.code.equals(originValue)) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright [2020-2030] [https://www.stylefeng.cn]
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*
|
|
||||||
* Guns采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
|
|
||||||
*
|
|
||||||
* 1.请不要删除和修改根目录下的LICENSE文件。
|
|
||||||
* 2.请不要删除和修改Guns源码头部的版权声明。
|
|
||||||
* 3.请保留源码和相关描述文件的项目出处,作者声明等。
|
|
||||||
* 4.分发源码时候,请注明软件出处 https://gitee.com/stylefeng/guns
|
|
||||||
* 5.在修改包名,模块名称,项目代码等时,请注明软件出处 https://gitee.com/stylefeng/guns
|
|
||||||
* 6.若您的项目无法满足以上几点,可申请商业授权
|
|
||||||
*/
|
|
||||||
package cn.stylefeng.roses.kernel.system.api.enums;
|
|
||||||
|
|
||||||
import lombok.Getter;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 菜单前台后台类型的枚举
|
|
||||||
*
|
|
||||||
* @author fengshuonan
|
|
||||||
* @date 2022/4/28 11:37
|
|
||||||
*/
|
|
||||||
@Getter
|
|
||||||
public enum MenuFrontTypeEnum {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 前台显示
|
|
||||||
*/
|
|
||||||
FRONT(1, "前台显示"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 后台显示
|
|
||||||
*/
|
|
||||||
BACKEND(2, "后台显示"),
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 全部显示
|
|
||||||
*/
|
|
||||||
TOTAL(3, "全部显示");
|
|
||||||
|
|
||||||
private final Integer code;
|
|
||||||
|
|
||||||
private final String message;
|
|
||||||
|
|
||||||
MenuFrontTypeEnum(Integer code, String message) {
|
|
||||||
this.code = code;
|
|
||||||
this.message = message;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -43,7 +43,6 @@ import cn.stylefeng.roses.kernel.system.api.AppServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
|
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
||||||
import cn.stylefeng.roses.kernel.system.api.enums.MenuFrontTypeEnum;
|
|
||||||
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
import cn.stylefeng.roses.kernel.system.api.exception.SystemModularException;
|
||||||
import cn.stylefeng.roses.kernel.system.api.exception.enums.menu.SysMenuExceptionEnum;
|
import cn.stylefeng.roses.kernel.system.api.exception.enums.menu.SysMenuExceptionEnum;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
|
import cn.stylefeng.roses.kernel.system.api.pojo.app.SysAppResult;
|
||||||
|
@ -137,7 +136,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
|
|
||||||
// 设置如果菜单前后台类型如果为空,则默认为都显示
|
// 设置如果菜单前后台类型如果为空,则默认为都显示
|
||||||
if (ObjectUtil.isEmpty(sysMenuRequest.getAntdvFrontType())) {
|
if (ObjectUtil.isEmpty(sysMenuRequest.getAntdvFrontType())) {
|
||||||
sysMenu.setAntdvFrontType(MenuFrontTypeEnum.TOTAL.getCode());
|
sysMenu.setAntdvFrontType(AntdvFrontTypeEnum.TOTAL_SHOW.getCode());
|
||||||
}
|
}
|
||||||
|
|
||||||
this.save(sysMenu);
|
this.save(sysMenu);
|
||||||
|
@ -310,7 +309,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
// 获取前台或者后台类型
|
// 获取前台或者后台类型
|
||||||
Integer antdvFrontType = sysMenuRequest.getAntdvFrontType();
|
Integer antdvFrontType = sysMenuRequest.getAntdvFrontType();
|
||||||
if (antdvFrontType == null) {
|
if (antdvFrontType == null) {
|
||||||
antdvFrontType = MenuFrontTypeEnum.FRONT.getCode();
|
antdvFrontType = AntdvFrontTypeEnum.FRONT.getCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取当前已经启用的应用,并且按排序字段排序的
|
// 获取当前已经启用的应用,并且按排序字段排序的
|
||||||
|
@ -520,7 +519,10 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
|
|
||||||
menuWrapper.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode());
|
menuWrapper.eq(SysMenu::getDelFlag, YesOrNotEnum.N.getCode());
|
||||||
menuWrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode());
|
menuWrapper.eq(SysMenu::getStatusFlag, StatusEnum.ENABLE.getCode());
|
||||||
menuWrapper.nested(i -> i.eq(SysMenu::getAntdvFrontType, antdvFrontTypeEnum.getCode()).or().eq(SysMenu::getAntdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode()));
|
|
||||||
|
if (antdvFrontTypeEnum != null) {
|
||||||
|
menuWrapper.nested(i -> i.eq(SysMenu::getAntdvFrontType, antdvFrontTypeEnum.getCode()).or().eq(SysMenu::getAntdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode()));
|
||||||
|
}
|
||||||
|
|
||||||
List<SysMenu> sysMenuList = this.list(menuWrapper);
|
List<SysMenu> sysMenuList = this.list(menuWrapper);
|
||||||
return sysMenuList.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
|
return sysMenuList.stream().map(SysMenu::getMenuId).collect(Collectors.toList());
|
||||||
|
@ -567,7 +569,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
||||||
|
|
||||||
// 判断前台还是后台菜单
|
// 判断前台还是后台菜单
|
||||||
if (ObjectUtil.isNotEmpty(antdvFrontType)) {
|
if (ObjectUtil.isNotEmpty(antdvFrontType)) {
|
||||||
queryWrapper.in(SysMenu::getAntdvFrontType, ListUtil.list(true, antdvFrontType, MenuFrontTypeEnum.TOTAL.getCode()));
|
queryWrapper.in(SysMenu::getAntdvFrontType, ListUtil.list(true, antdvFrontType, AntdvFrontTypeEnum.TOTAL_SHOW.getCode()));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果是不分离版本,则筛选一下不需要显示的菜单
|
// 如果是不分离版本,则筛选一下不需要显示的菜单
|
||||||
|
|
|
@ -496,7 +496,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取所有前台菜单id
|
// 获取所有前台菜单id
|
||||||
List<Long> totalMenuIdList = this.menuServiceApi.getTotalMenuIdList(AntdvFrontTypeEnum.FRONT);
|
AntdvFrontTypeEnum antdvFrontTypeEnum = AntdvFrontTypeEnum.parseToEnum(sysRoleRequest.getResourceBizType());
|
||||||
|
List<Long> totalMenuIdList = this.menuServiceApi.getTotalMenuIdList(antdvFrontTypeEnum);
|
||||||
|
|
||||||
// 批量保存绑定的菜单集合
|
// 批量保存绑定的菜单集合
|
||||||
List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
|
List<SysRoleMenu> sysRoleMenus = new ArrayList<>();
|
||||||
|
@ -529,7 +530,8 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取所有前台按钮集合
|
// 获取所有前台按钮集合
|
||||||
List<SysMenuButtonDTO> totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(AntdvFrontTypeEnum.FRONT);
|
AntdvFrontTypeEnum antdvFrontTypeEnum = AntdvFrontTypeEnum.parseToEnum(sysRoleRequest.getResourceBizType());
|
||||||
|
List<SysMenuButtonDTO> totalButtonIds = this.menuServiceApi.getTotalMenuButtonIdList(antdvFrontTypeEnum);
|
||||||
|
|
||||||
// 批量保存绑定的按钮集合
|
// 批量保存绑定的按钮集合
|
||||||
List<SysRoleMenuButton> sysRoleMenuButtons = new ArrayList<>();
|
List<SysRoleMenuButton> sysRoleMenuButtons = new ArrayList<>();
|
||||||
|
|
|
@ -31,7 +31,7 @@ import cn.stylefeng.roses.kernel.auth.api.pojo.login.LoginUser;
|
||||||
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
import cn.stylefeng.roses.kernel.auth.api.pojo.login.basic.SimpleRoleInfo;
|
||||||
import cn.stylefeng.roses.kernel.rule.enums.SexEnum;
|
import cn.stylefeng.roses.kernel.rule.enums.SexEnum;
|
||||||
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
||||||
import cn.stylefeng.roses.kernel.system.api.enums.MenuFrontTypeEnum;
|
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexRoleInfo;
|
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexRoleInfo;
|
||||||
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexUserInfoV3;
|
import cn.stylefeng.roses.kernel.system.api.pojo.login.v3.IndexUserInfoV3;
|
||||||
import cn.stylefeng.roses.kernel.system.modular.user.service.IndexUserInfoService;
|
import cn.stylefeng.roses.kernel.system.modular.user.service.IndexUserInfoService;
|
||||||
|
@ -111,7 +111,7 @@ public class IndexUserInfoServiceImpl implements IndexUserInfoService {
|
||||||
|
|
||||||
// 获取用户菜单和权限信息
|
// 获取用户菜单和权限信息
|
||||||
if (ObjectUtil.isEmpty(menuFrontType)) {
|
if (ObjectUtil.isEmpty(menuFrontType)) {
|
||||||
menuFrontType = MenuFrontTypeEnum.FRONT.getCode();
|
menuFrontType = AntdvFrontTypeEnum.FRONT.getCode();
|
||||||
}
|
}
|
||||||
indexUserInfoV3.setAuthorities(menuServiceApi.buildAuthorities(menuFrontType));
|
indexUserInfoV3.setAuthorities(menuServiceApi.buildAuthorities(menuFrontType));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue