@Transactional(propagation = Propagation.REQUIRED) public UserWithNetworkVO createUserWithNetwork(UserVO convertTo, String password) { hiveValidator.validate(convertTo); UserVO createdUser = createUser(convertTo, password); NetworkVO createdNetwork = networkService.createOrUpdateNetworkByUser(createdUser); UserWithNetworkVO result = UserWithNetworkVO.fromUserVO(createdUser); result.getNetworks().add(createdNetwork); return result; }
@Override public UserWithNetworkVO getWithNetworksById(long id) { User user = createNamedQuery(User.class, "User.getWithNetworksById", of(CacheConfig.get())) .setParameter("id", id) .getResultList() .stream().findFirst().orElse(null); if (user == null) { return null; } UserVO vo = User.convertToVo(user); UserWithNetworkVO userWithNetworkVO = UserWithNetworkVO.fromUserVO(vo); //TODO [rafa] change here to bulk fetch data if (user.getNetworks() != null) { for (Network network : user.getNetworks()) { NetworkVO networkVo = Network.convertNetwork(network); userWithNetworkVO.getNetworks().add(networkVo); } } return userWithNetworkVO; }
@HiveWebsocketAuth @PreAuthorize("isAuthenticated() and hasPermission(null, 'GET_NETWORK')") public void processUserGetNetwork(JsonObject request, WebSocketSession session) { Long userId = gson.fromJson(request.get(USER_ID), Long.class); if (userId == null) { logger.error(Messages.USER_ID_REQUIRED); throw new HiveException(Messages.USER_ID_REQUIRED, BAD_REQUEST.getStatusCode()); } Long networkId = gson.fromJson(request.get(NETWORK_ID), Long.class); if (networkId == null) { logger.error(Messages.NETWORK_ID_REQUIRED); throw new HiveException(Messages.NETWORK_ID_REQUIRED, BAD_REQUEST.getStatusCode()); } UserWithNetworkVO existingUser = userService.findUserWithNetworks(userId); if (existingUser == null) { logger.error("Can't get network with id {}: user {} not found", networkId, userId); throw new HiveException(String.format(Messages.USER_NOT_FOUND, userId), NOT_FOUND.getStatusCode()); } for (NetworkVO network : existingUser.getNetworks()) { if (networkId.equals(network.getId())) { WebSocketResponse response = new WebSocketResponse(); response.addValue(NETWORK, UserNetworkResponse.fromNetwork(network), NETWORKS_LISTED); clientHandler.sendMessage(request, response, session); return; } } clientHandler.sendErrorResponse(request, NOT_FOUND.getStatusCode(), String.format(Messages.USER_NETWORK_NOT_FOUND, networkId, userId), session); }
/** * {@inheritDoc} */ @Override public Response getNetwork(long id, long networkId) { UserWithNetworkVO existingUser = userService.findUserWithNetworks(id); if (existingUser == null) { logger.error("Can't get network with id {}: user {} not found", networkId, id); ErrorResponse errorResponseEntity = new ErrorResponse(NOT_FOUND.getStatusCode(), String.format(Messages.USER_NOT_FOUND, id)); return ResponseFactory.response(NOT_FOUND, errorResponseEntity); } for (NetworkVO network : existingUser.getNetworks()) { if (network.getId() == networkId) { return ResponseFactory.response(OK, UserNetworkResponse.fromNetwork(network), JsonPolicyDef.Policy.NETWORKS_LISTED); } } ErrorResponse errorResponseEntity = new ErrorResponse(NOT_FOUND.getStatusCode(), String.format(Messages.USER_NETWORK_NOT_FOUND, networkId, id)); return ResponseFactory.response(NOT_FOUND, errorResponseEntity); }
public static UserResponse createFromUser(UserWithNetworkVO u) { UserResponse response = new UserResponse(); response.setId(u.getId()); response.setLogin(u.getLogin()); response.setLoginAttempts(u.getLoginAttempts()); response.setRole(u.getRole()); response.setStatus(u.getStatus()); response.networks = new HashSet<>(); response.networks.addAll(u.getNetworks().stream().map(UserNetworkResponse::fromNetwork).collect(Collectors.toList())); response.setData(u.getData()); response.setLastLogin(u.getLastLogin()); response.setIntroReviewed(u.getIntroReviewed()); return response; }
Set<NetworkVO> networks = userWithNetwork.getNetworks(); if (!networks.isEmpty()) { networks.forEach(network -> {
principal.setAllNetworksAvailable(true); } else { principal.setNetworkIds(userWithNetworksVO.getNetworks().stream() .map(NetworkVO::getId).collect(Collectors.toSet()));