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;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import lombok.Getter;
|
||||
|
||||
/**
|
||||
|
@ -59,4 +60,23 @@ public enum AntdvFrontTypeEnum {
|
|||
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.RoleServiceApi;
|
||||
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.enums.menu.SysMenuExceptionEnum;
|
||||
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())) {
|
||||
sysMenu.setAntdvFrontType(MenuFrontTypeEnum.TOTAL.getCode());
|
||||
sysMenu.setAntdvFrontType(AntdvFrontTypeEnum.TOTAL_SHOW.getCode());
|
||||
}
|
||||
|
||||
this.save(sysMenu);
|
||||
|
@ -310,7 +309,7 @@ public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> impl
|
|||
// 获取前台或者后台类型
|
||||
Integer antdvFrontType = sysMenuRequest.getAntdvFrontType();
|
||||
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::getStatusFlag, StatusEnum.ENABLE.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);
|
||||
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)) {
|
||||
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
|
||||
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<>();
|
||||
|
@ -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<>();
|
||||
|
|
|
@ -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.rule.enums.SexEnum;
|
||||
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.IndexUserInfoV3;
|
||||
import cn.stylefeng.roses.kernel.system.modular.user.service.IndexUserInfoService;
|
||||
|
@ -111,7 +111,7 @@ public class IndexUserInfoServiceImpl implements IndexUserInfoService {
|
|||
|
||||
// 获取用户菜单和权限信息
|
||||
if (ObjectUtil.isEmpty(menuFrontType)) {
|
||||
menuFrontType = MenuFrontTypeEnum.FRONT.getCode();
|
||||
menuFrontType = AntdvFrontTypeEnum.FRONT.getCode();
|
||||
}
|
||||
indexUserInfoV3.setAuthorities(menuServiceApi.buildAuthorities(menuFrontType));
|
||||
|
||||
|
|
Loading…
Reference in New Issue