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 com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 菜单下的功能操作 服务类
|
* 菜单下的功能操作 服务类
|
||||||
|
@ -81,6 +82,17 @@ public interface SysMenuOptionsService extends IService<SysMenuOptions> {
|
||||||
*/
|
*/
|
||||||
List<SysMenuOptions> getTotalMenuOptionsList();
|
List<SysMenuOptions> getTotalMenuOptionsList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取所有的菜单功能id
|
||||||
|
* <p>
|
||||||
|
* 一般用在项目启动管理员角色绑定所有的菜单功能
|
||||||
|
*
|
||||||
|
* @param roleLimitMenuIdsAndOptionIds 角色限制的菜单id和功能id集合
|
||||||
|
* @author fengshuonan
|
||||||
|
* @since 2023/6/18 20:37
|
||||||
|
*/
|
||||||
|
List<SysMenuOptions> getTotalMenuOptionsList(Set<Long> roleLimitMenuIdsAndOptionIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取功能编码集合,通过功能id集合
|
* 获取功能编码集合,通过功能id集合
|
||||||
*
|
*
|
||||||
|
|
|
@ -117,8 +117,17 @@ public class SysMenuOptionsServiceImpl extends ServiceImpl<SysMenuOptionsMapper,
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SysMenuOptions> getTotalMenuOptionsList() {
|
public List<SysMenuOptions> getTotalMenuOptionsList() {
|
||||||
|
return this.getTotalMenuOptionsList(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<SysMenuOptions> getTotalMenuOptionsList(Set<Long> roleLimitMenuIdsAndOptionIds) {
|
||||||
LambdaQueryWrapper<SysMenuOptions> sysMenuOptionsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
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);
|
return this.list(sysMenuOptionsLambdaQueryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 角色绑定权限,点击绑定所有时候的业务处理
|
* 角色绑定权限,点击绑定所有时候的业务处理
|
||||||
|
@ -52,7 +53,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest) {
|
public void doOperateAction(RoleBindPermissionRequest roleBindPermissionRequest, Set<Long> roleLimitMenuIdsAndOptionIds) {
|
||||||
|
|
||||||
Long roleId = roleBindPermissionRequest.getRoleId();
|
Long roleId = roleBindPermissionRequest.getRoleId();
|
||||||
|
|
||||||
|
@ -69,7 +70,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit
|
||||||
if (roleBindPermissionRequest.getChecked()) {
|
if (roleBindPermissionRequest.getChecked()) {
|
||||||
|
|
||||||
// 获取所有的菜单
|
// 获取所有的菜单
|
||||||
List<SysMenu> totalMenus = this.sysMenuService.getTotalMenus();
|
List<SysMenu> totalMenus = this.sysMenuService.getTotalMenus(roleLimitMenuIdsAndOptionIds);
|
||||||
|
|
||||||
// 绑定角色的所有菜单
|
// 绑定角色的所有菜单
|
||||||
List<SysRoleMenu> sysRoleMenuList = new ArrayList<>();
|
List<SysRoleMenu> sysRoleMenuList = new ArrayList<>();
|
||||||
|
@ -83,7 +84,7 @@ public class RoleBindTotalImpl implements RoleAssignOperateAction, RoleBindLimit
|
||||||
this.sysRoleMenuService.saveBatch(sysRoleMenuList);
|
this.sysRoleMenuService.saveBatch(sysRoleMenuList);
|
||||||
|
|
||||||
// 获取所有的功能
|
// 获取所有的功能
|
||||||
List<SysMenuOptions> sysMenuOptionsList = sysMenuOptionsService.getTotalMenuOptionsList();
|
List<SysMenuOptions> sysMenuOptionsList = sysMenuOptionsService.getTotalMenuOptionsList(roleLimitMenuIdsAndOptionIds);
|
||||||
|
|
||||||
// 绑定角色的所有功能
|
// 绑定角色的所有功能
|
||||||
List<SysRoleMenuOptions> sysRoleMenuOptionsList = new ArrayList<>();
|
List<SysRoleMenuOptions> sysRoleMenuOptionsList = new ArrayList<>();
|
||||||
|
|
Loading…
Reference in New Issue