mirror of https://gitee.com/stylefeng/roses
【8.0】【role】完善绑定权限增加范围筛选,增加绑定权限的筛选
parent
3fe5356431
commit
f2b9f27584
|
@ -6,6 +6,7 @@ import cn.stylefeng.roses.kernel.sys.modular.menu.pojo.request.SysMenuOptionsReq
|
|||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 菜单下的功能操作 服务类
|
||||
|
@ -81,6 +82,17 @@ public interface SysMenuOptionsService extends IService<SysMenuOptions> {
|
|||
*/
|
||||
List<SysMenuOptions> getTotalMenuOptionsList();
|
||||
|
||||
/**
|
||||
* 获取所有的菜单功能id
|
||||
* <p>
|
||||
* 一般用在项目启动管理员角色绑定所有的菜单功能
|
||||
*
|
||||
* @param roleLimitMenuIdsAndOptionIds 角色限制的菜单id和功能id集合
|
||||
* @author fengshuonan
|
||||
* @since 2023/6/18 20:37
|
||||
*/
|
||||
List<SysMenuOptions> getTotalMenuOptionsList(Set<Long> roleLimitMenuIdsAndOptionIds);
|
||||
|
||||
/**
|
||||
* 获取功能编码集合,通过功能id集合
|
||||
*
|
||||
|
|
|
@ -117,8 +117,17 @@ public class SysMenuOptionsServiceImpl extends ServiceImpl<SysMenuOptionsMapper,
|
|||
|
||||
@Override
|
||||
public List<SysMenuOptions> getTotalMenuOptionsList() {
|
||||
return this.getTotalMenuOptionsList(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SysMenuOptions> getTotalMenuOptionsList(Set<Long> roleLimitMenuIdsAndOptionIds) {
|
||||
LambdaQueryWrapper<SysMenuOptions> sysMenuOptionsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
sysMenuOptionsLambdaQueryWrapper.select(SysMenuOptions::getMenuOptionId, SysMenuOptions::getMenuId, SysMenuOptions::getAppId, SysMenuOptions::getOptionName);
|
||||
sysMenuOptionsLambdaQueryWrapper.select(SysMenuOptions::getMenuOptionId, SysMenuOptions::getMenuId, SysMenuOptions::getAppId,
|
||||
SysMenuOptions::getOptionName);
|
||||
if (ObjectUtil.isNotEmpty(roleLimitMenuIdsAndOptionIds)) {
|
||||
sysMenuOptionsLambdaQueryWrapper.in(SysMenuOptions::getMenuOptionId, roleLimitMenuIdsAndOptionIds);
|
||||
}
|
||||
return this.list(sysMenuOptionsLambdaQueryWrapper);
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
|
|||
import javax.annotation.Resource;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* 角色绑定权限,点击绑定所有时候的业务处理
|
||||
|
@ -52,7 +53,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit
|
|||
}
|
||||
|
||||
@Override
|
||||
public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest) {
|
||||
public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest, Set<Long> roleLimitMenuIdsAndOptionIds) {
|
||||
|
||||
Long roleId = roleBindPermissionRequest.getRoleId();
|
||||
|
||||
|
@ -69,7 +70,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit
|
|||
if (roleBindPermissionRequest.getChecked()) {
|
||||
|
||||
// 获取所有的菜单
|
||||
List<SysMenu> totalMenus = this.sysMenuService.getTotalMenus();
|
||||
List<SysMenu> totalMenus = this.sysMenuService.getTotalMenus(roleLimitMenuIdsAndOptionIds);
|
||||
|
||||
// 绑定角色的所有菜单
|
||||
List<SysRoleMenu> sysRoleMenuList = new ArrayList<>();
|
||||
|
@ -83,7 +84,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit
|
|||
this.sysRoleMenuService.saveBatch(sysRoleMenuList);
|
||||
|
||||
// 获取所有的功能
|
||||
List<SysMenuOptions> sysMenuOptionsList = sysMenuOptionsService.getTotalMenuOptionsList();
|
||||
List<SysMenuOptions> sysMenuOptionsList = sysMenuOptionsService.getTotalMenuOptionsList(roleLimitMenuIdsAndOptionIds);
|
||||
|
||||
// 绑定角色的所有功能
|
||||
List<SysRoleMenuOptions> sysRoleMenuOptionsList = new ArrayList<>();
|
||||
|
|
Loading…
Reference in New Issue