|
@@ -1,13 +1,16 @@
|
|
|
package cn.iocoder.yudao.module.system.controller.admin.permission;
|
|
|
|
|
|
+import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleDataScopeReqVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleMenuReqVO;
|
|
|
import cn.iocoder.yudao.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
|
|
|
import cn.iocoder.yudao.module.system.service.permission.PermissionService;
|
|
|
+import cn.iocoder.yudao.module.system.service.tenant.TenantService;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiImplicitParam;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
+import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
@@ -29,28 +32,33 @@ public class PermissionController {
|
|
|
|
|
|
@Resource
|
|
|
private PermissionService permissionService;
|
|
|
+ @Resource
|
|
|
+ private TenantService tenantService;
|
|
|
|
|
|
- // TODO @芋艿:处理下全新啊标识
|
|
|
|
|
|
@ApiOperation("获得角色拥有的菜单编号")
|
|
|
@ApiImplicitParam(name = "roleId", value = "角色编号", required = true, dataTypeClass = Long.class)
|
|
|
@GetMapping("/list-role-resources")
|
|
|
-// @RequiresPermissions("system:permission:assign-role-menu")
|
|
|
+ @PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')")
|
|
|
public CommonResult<Set<Long>> listRoleMenus(Long roleId) {
|
|
|
return success(permissionService.getRoleMenuIds(roleId));
|
|
|
}
|
|
|
|
|
|
@PostMapping("/assign-role-menu")
|
|
|
@ApiOperation("赋予角色菜单")
|
|
|
-// @RequiresPermissions("system:permission:assign-role-resource")
|
|
|
+ @PreAuthorize("@ss.hasPermission('system:permission:assign-role-menu')")
|
|
|
public CommonResult<Boolean> assignRoleMenu(@Validated @RequestBody PermissionAssignRoleMenuReqVO reqVO) {
|
|
|
+ // 开启多租户的情况下,需要过滤掉未开通的菜单
|
|
|
+ tenantService.handleTenantMenu(menuIds -> reqVO.getMenuIds().removeIf(menuId -> !CollUtil.contains(menuIds, menuId)));
|
|
|
+
|
|
|
+ // 执行菜单的分配
|
|
|
permissionService.assignRoleMenu(reqVO.getRoleId(), reqVO.getMenuIds());
|
|
|
return success(true);
|
|
|
}
|
|
|
|
|
|
@PostMapping("/assign-role-data-scope")
|
|
|
@ApiOperation("赋予角色数据权限")
|
|
|
-// @RequiresPermissions("system:permission:assign-role-data-scope")
|
|
|
+ @PreAuthorize("@ss.hasPermission('system:permission:assign-role-data-scope')")
|
|
|
public CommonResult<Boolean> assignRoleDataScope(@Valid @RequestBody PermissionAssignRoleDataScopeReqVO reqVO) {
|
|
|
permissionService.assignRoleDataScope(reqVO.getRoleId(), reqVO.getDataScope(), reqVO.getDataScopeDeptIds());
|
|
|
return success(true);
|
|
@@ -59,14 +67,14 @@ public class PermissionController {
|
|
|
@ApiOperation("获得管理员拥有的角色编号列表")
|
|
|
@ApiImplicitParam(name = "userId", value = "用户编号", required = true, dataTypeClass = Long.class)
|
|
|
@GetMapping("/list-user-roles")
|
|
|
-// @RequiresPermissions("system:permission:assign-user-role")
|
|
|
+ @PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')")
|
|
|
public CommonResult<Set<Long>> listAdminRoles(@RequestParam("userId") Long userId) {
|
|
|
return success(permissionService.getUserRoleIdListByUserId(userId));
|
|
|
}
|
|
|
|
|
|
@ApiOperation("赋予用户角色")
|
|
|
@PostMapping("/assign-user-role")
|
|
|
-// @RequiresPermissions("system:permission:assign-user-role")
|
|
|
+ @PreAuthorize("@ss.hasPermission('system:permission:assign-user-role')")
|
|
|
public CommonResult<Boolean> assignUserRole(@Validated @RequestBody PermissionAssignUserRoleReqVO reqVO) {
|
|
|
permissionService.assignUserRole(reqVO.getUserId(), reqVO.getRoleIds());
|
|
|
return success(true);
|