mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
+13
@@ -48,4 +48,17 @@ public interface PermissionApi {
|
||||
@Parameter(name = "userId", description = "用户编号", example = "2", required = true)
|
||||
CommonResult<DeptDataPermissionRespDTO> getDeptDataPermission(@RequestParam("userId") Long userId);
|
||||
|
||||
@GetMapping(PREFIX + "/user-role-id-list-by-user-id")
|
||||
@Operation(summary = "获得拥有多个角色的用户编号集合")
|
||||
@Parameter(name = "roleIds", description = "角色编号集合", example = "1,2", required = true)
|
||||
CommonResult<Set<String>> getUserRoleIdListByUserIds(@RequestParam("userId") Long userId);
|
||||
|
||||
@GetMapping(PREFIX + "/has-roles")
|
||||
@Operation(summary = "判断用户是否拥有权限标识")
|
||||
@Parameters({
|
||||
@Parameter(name = "userId", description = "用户编号", example = "1", required = true),
|
||||
@Parameter(name = "permission", description = "权限标识", example = "2", required = true)
|
||||
})
|
||||
CommonResult<Boolean> hasRoles(@RequestParam("userId") Long userId,
|
||||
@RequestParam("permission") String permission);
|
||||
}
|
||||
|
||||
+11
@@ -40,4 +40,15 @@ public class PermissionApiImpl implements PermissionApi {
|
||||
return success(deptDataPermission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Set<String>> getUserRoleIdListByUserIds(Long userId) {
|
||||
return success(permissionService.getUserPermissions(userId));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<Boolean> hasRoles(Long userId, String permission) {
|
||||
Set<String> permissions = permissionService.getUserPermissions(userId);
|
||||
return success(permissions.contains(permission));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+10
@@ -171,4 +171,14 @@ public interface PermissionService {
|
||||
* @return
|
||||
*/
|
||||
Set<Long> getListRoleUsers(Long roleId, Long organId);
|
||||
|
||||
/**
|
||||
* 获取用户权限标识
|
||||
*/
|
||||
Set<String> getUserPermissions(Long userId);
|
||||
|
||||
/**
|
||||
* 判断用户是否拥有相对应的权限
|
||||
*/
|
||||
Boolean hasPermission(Long userId, String permission);
|
||||
}
|
||||
|
||||
+30
@@ -18,6 +18,7 @@ import com.cf.imes.module.system.api.permission.dto.DeptDataPermissionRespDTO;
|
||||
import com.cf.imes.module.system.constants.permission.InternalRoleConstants;
|
||||
import com.cf.imes.module.system.controller.admin.permission.vo.permission.PermissionAssignRoleUserReqVO;
|
||||
import com.cf.imes.module.system.controller.admin.permission.vo.permission.PermissionAssignUserRoleReqVO;
|
||||
import com.cf.imes.module.system.convert.auth.AuthConvert;
|
||||
import com.cf.imes.module.system.dal.dataobject.permission.MenuDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.permission.RoleDO;
|
||||
import com.cf.imes.module.system.dal.dataobject.permission.RoleMenuDO;
|
||||
@@ -53,8 +54,10 @@ import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.cf.imes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.cf.imes.framework.common.pojo.CommonResult.success;
|
||||
import static com.cf.imes.framework.common.util.collection.CollectionUtils.convertSet;
|
||||
import static com.cf.imes.framework.common.util.json.JsonUtils.toJsonString;
|
||||
import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
import static com.cf.imes.module.system.enums.ErrorCodeConstants.ROLE_ME_ERROR;
|
||||
|
||||
/**
|
||||
@@ -596,4 +599,31 @@ public class PermissionServiceImpl implements PermissionService {
|
||||
return SpringUtil.getBean(getClass());
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户权限标识
|
||||
*/
|
||||
@Override
|
||||
public Set<String> getUserPermissions(Long userId) {
|
||||
// 1.2 获得角色列表
|
||||
Set<Long> roleIds = getUserRoleIdListByUserId(getLoginUserId());
|
||||
if (CollUtil.isEmpty(roleIds)) {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
List<RoleDO> roles = roleService.getRoleList1(roleIds);
|
||||
roles.removeIf(role -> !CommonStatusEnum.ENABLE.getStatus().equals(role.getStatus())); // 移除禁用的角色
|
||||
|
||||
// 1.3 获得菜单列表
|
||||
Set<Long> menuIds = getRoleMenuListByRoleId2(convertSet(roles, RoleDO::getId));
|
||||
List<MenuDO> menuList = menuService.getMenuList1(menuIds);
|
||||
menuList.removeIf(menu -> !CommonStatusEnum.ENABLE.getStatus().equals(menu.getStatus())); // 移除禁用的菜单
|
||||
|
||||
return convertSet(menuList, MenuDO::getPermission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean hasPermission(Long userId, String permission) {
|
||||
Set<String> permissions = getUserPermissions(userId);
|
||||
return permissions.contains(permission);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user