/** * Merges the AccessPolicyEntity responses. * * @param clientEntity the entity being returned to the client * @param entityMap all node responses */ public void mergeComponents(final AccessPolicyEntity clientEntity, final Map<NodeIdentifier, AccessPolicyEntity> entityMap) { final AccessPolicyDTO clientDto = clientEntity.getComponent(); final Map<NodeIdentifier, AccessPolicyDTO> dtoMap = new HashMap<>(); for (final Map.Entry<NodeIdentifier, AccessPolicyEntity> entry : entityMap.entrySet()) { final AccessPolicyEntity nodeAccessPolicyEntity = entry.getValue(); final AccessPolicyDTO nodeAccessPolicyDto = nodeAccessPolicyEntity.getComponent(); dtoMap.put(entry.getKey(), nodeAccessPolicyDto); } mergeDtos(clientDto, dtoMap); }
public AccessPolicyEntity createAccessPolicyEntity(final AccessPolicyDTO dto, final RevisionDTO revision, final PermissionsDTO permissions) { final AccessPolicyEntity entity = new AccessPolicyEntity(); entity.setRevision(revision); entity.setGenerated(new Date()); if (dto != null) { entity.setPermissions(permissions); entity.setId(dto.getId()); if (permissions != null && permissions.getCanRead()) { entity.setComponent(dto); } } return entity; }
/** * Populates the uri for the specified access policy. * * @param accessPolicyEntity accessPolicyEntity * @return accessPolicyEntity */ public AccessPolicyEntity populateRemainingAccessPolicyEntityContent(AccessPolicyEntity accessPolicyEntity) { accessPolicyEntity.setUri(generateResourceUri("policies", accessPolicyEntity.getId())); return accessPolicyEntity; }
if (requestAccessPolicyEntity == null || requestAccessPolicyEntity.getComponent() == null) { throw new IllegalArgumentException("Access policy details must be specified."); if (requestAccessPolicyEntity.getRevision() == null || (requestAccessPolicyEntity.getRevision().getVersion() == null || requestAccessPolicyEntity.getRevision().getVersion() != 0)) { throw new IllegalArgumentException("A revision of 0 must be specified when creating a new Policy."); final AccessPolicyDTO requestAccessPolicy = requestAccessPolicyEntity.getComponent(); if (requestAccessPolicy.getId() != null) { throw new IllegalArgumentException("Access policy ID cannot be specified."); return replicate(HttpMethod.POST, requestAccessPolicyEntity); } else if (isDisconnectedFromCluster()) { verifyDisconnectedNodeModification(requestAccessPolicyEntity.isDisconnectedNodeAcknowledged()); null, accessPolicyEntity -> { final AccessPolicyDTO accessPolicy = accessPolicyEntity.getComponent(); final RevisionDTO revisionDTO = accessPolicyEntity.getRevision(); Revision revision = new Revision(revisionDTO.getVersion(), revisionDTO.getClientId(), accessPolicyEntity.getComponent().getId()); final AccessPolicyEntity entity = serviceFacade.createAccessPolicy(revision, accessPolicyEntity.getComponent()); populateRemainingAccessPolicyEntityContent(entity); return generateCreatedResponse(URI.create(entity.getUri()), entity).build();
if (requestAccessPolicyEntity == null || requestAccessPolicyEntity.getComponent() == null) { throw new IllegalArgumentException("Access policy details must be specified."); if (requestAccessPolicyEntity.getRevision() == null) { throw new IllegalArgumentException("Revision must be specified."); final AccessPolicyDTO requestAccessPolicyDTO = requestAccessPolicyEntity.getComponent(); if (!id.equals(requestAccessPolicyDTO.getId())) { throw new IllegalArgumentException(String.format("The access policy id (%s) in the request body does not equal the " return replicate(HttpMethod.PUT, requestAccessPolicyEntity); } else if (isDisconnectedFromCluster()) { verifyDisconnectedNodeModification(requestAccessPolicyEntity.isDisconnectedNodeAcknowledged()); null, (revision, accessPolicyEntity) -> { final AccessPolicyDTO accessPolicyDTO = accessPolicyEntity.getComponent();
final AccessPolicyEntity requestAccessPolicyEntity = new AccessPolicyEntity(); requestAccessPolicyEntity.setId(id); (revision, accessPolicyEntity) -> { final AccessPolicyEntity entity = serviceFacade.deleteAccessPolicy(revision, accessPolicyEntity.getId()); return generateOkResponse(entity).build();