@Transactional(propagation = Propagation.SUPPORTS) public DeviceVO findByIdWithPermissionsCheckIfExists(String deviceId, HivePrincipal principal) { if (deviceId.isEmpty()) { logger.error("Device ID is empty"); throw new HiveException(String.format(Messages.DEVICE_ID_REQUIRED, deviceId), BAD_REQUEST.getStatusCode()); } DeviceVO deviceVO = findByIdWithPermissionsCheck(deviceId, principal); if (deviceVO == null) { logger.error("Device with ID {} not found", deviceId); if (UserRole.CLIENT.equals(principal.getUser().getRole())) { throw new HiveException(ACCESS_DENIED, SC_FORBIDDEN); } throw new HiveException(String.format(Messages.DEVICE_NOT_FOUND, deviceId), NOT_FOUND.getStatusCode()); } return deviceVO; }
@Transactional(propagation = Propagation.SUPPORTS) public List<DeviceVO> getAllowedExistingDevices(Set<String> deviceIds, HivePrincipal principal) { List<DeviceVO> devices = findByIdWithPermissionsCheck(deviceIds, principal); Set<String> allowedIds = devices.stream() .map(DeviceVO::getDeviceId) .collect(Collectors.toSet()); Set<String> unresolvedIds = Sets.difference(deviceIds, allowedIds); if (unresolvedIds.isEmpty()) { return devices; } if (UserRole.ADMIN.equals(principal.getUser().getRole())) { throw new HiveException(String.format(Messages.DEVICES_NOT_FOUND, unresolvedIds), SC_NOT_FOUND); } else { throw new HiveException(Messages.ACCESS_DENIED, SC_FORBIDDEN); } }
/** * {@inheritDoc} */ @Override public Response getUser(Long userId) { UserVO currentLoggedInUser = findCurrentUserFromAuthContext(); UserWithNetworkVO fetchedUser = null; if (currentLoggedInUser != null && currentLoggedInUser.getRole() == UserRole.ADMIN) { fetchedUser = userService.findUserWithNetworks(userId); } else if (currentLoggedInUser != null && currentLoggedInUser.getRole() == UserRole.CLIENT && Objects.equals(currentLoggedInUser.getId(), userId)) { fetchedUser = userService.findUserWithNetworks(currentLoggedInUser.getId()); } else { return ResponseFactory.response(FORBIDDEN, new ErrorResponse(NOT_FOUND.getStatusCode(), String.format(Messages.USER_NOT_FOUND, userId))); } if (fetchedUser == null) { logger.error("Can't get user with id {}: user not found", userId); return ResponseFactory.response(NOT_FOUND, new ErrorResponse(NOT_FOUND.getStatusCode(), String.format(Messages.USER_NOT_FOUND, userId))); } return ResponseFactory.response(OK, fetchedUser, JsonPolicyDef.Policy.USER_PUBLISHED); }
if (currentLoggedInUser != null && currentLoggedInUser.getRole() == UserRole.ADMIN) { fetchedUser = userService.findUserWithNetworks(userId); } else if (currentLoggedInUser != null && currentLoggedInUser.getRole() == UserRole.CLIENT && Objects.equals(currentLoggedInUser.getId(), userId)) { fetchedUser = userService.findUserWithNetworks(currentLoggedInUser.getId());
).filter(Objects::nonNull).collect(Collectors.toSet()); if (actualNetworks.size() != networks.size()) { if (UserRole.CLIENT.equals(principal.getUser().getRole())) { throw new HiveException(ACCESS_DENIED, SC_FORBIDDEN); .map(deviceTypeService::getWithDevices).filter(Objects::nonNull).collect(Collectors.toSet()); if (actualDeviceTypes.size() != deviceTypes.size()) { if (UserRole.CLIENT.equals(principal.getUser().getRole())) { throw new HiveException(ACCESS_DENIED, SC_FORBIDDEN);
final boolean isClient = UserRole.CLIENT.equals(curUser.getRole()); if (isClient) { if (userToUpdate.getLogin().isPresent() ||
throw new IllegalParametersException(Messages.ID_NOT_ALLOWED); if (user.getRole() == null ) { throw new IllegalParametersException(Messages.INVALID_USER_ROLE);
public static UserWithNetworkVO fromUserVO(UserVO dc) { UserWithNetworkVO vo = null; if (dc != null) { vo = new UserWithNetworkVO(); vo.setData(dc.getData()); vo.setId(dc.getId()); vo.setData(dc.getData()); vo.setLastLogin(dc.getLastLogin()); vo.setLogin(dc.getLogin()); vo.setLoginAttempts(dc.getLoginAttempts()); vo.setNetworks(new HashSet<>()); vo.setPasswordHash(dc.getPasswordHash()); vo.setPasswordSalt(dc.getPasswordSalt()); vo.setRole(dc.getRole()); vo.setStatus(dc.getStatus()); vo.setIntroReviewed(dc.getIntroReviewed()); vo.setAllDeviceTypesAvailable(dc.getAllDeviceTypesAvailable()); } return vo; }
public static UserWithDeviceTypeVO fromUserVO(UserVO dc) { UserWithDeviceTypeVO vo = null; if (dc != null) { vo = new UserWithDeviceTypeVO(); vo.setData(dc.getData()); vo.setId(dc.getId()); vo.setData(dc.getData()); vo.setLastLogin(dc.getLastLogin()); vo.setLogin(dc.getLogin()); vo.setLoginAttempts(dc.getLoginAttempts()); vo.setDeviceTypes(new HashSet<>()); vo.setPasswordHash(dc.getPasswordHash()); vo.setPasswordSalt(dc.getPasswordSalt()); vo.setRole(dc.getRole()); vo.setStatus(dc.getStatus()); vo.setIntroReviewed(dc.getIntroReviewed()); vo.setAllDeviceTypesAvailable(dc.getAllDeviceTypesAvailable()); } return vo; }
public static User convertToEntity(UserVO dc) { User vo = null; if (dc != null) { vo = new User(); vo.setData(dc.getData()); vo.setId(dc.getId()); vo.setLastLogin(dc.getLastLogin()); vo.setLogin(dc.getLogin()); vo.setLoginAttempts(dc.getLoginAttempts()); //TODO [rafa] ??? vo.setNetworks(dc.getN); vo.setPasswordHash(dc.getPasswordHash()); vo.setPasswordSalt(dc.getPasswordSalt()); vo.setRole(dc.getRole()); vo.setStatus(dc.getStatus()); vo.setIntroReviewed(dc.getIntroReviewed()); vo.setAllDeviceTypesAvailable(dc.getAllDeviceTypesAvailable()); } return vo; }