use of eu.bcvsolutions.idm.core.api.dto.IdmRequestDto in project CzechIdMng by bcvsolutions.
the class IdmRequestItemController method delete.
@Override
@ResponseBody
@RequestMapping(value = "/{backendId}", method = RequestMethod.DELETE)
@PreAuthorize("hasAuthority('" + CoreGroupPermission.REQUEST_ITEM_DELETE + "')")
@ApiOperation(value = "Delete request item", nickname = "deleteRequestItem", tags = { IdmRequestItemController.TAG }, authorizations = { @Authorization(value = SwaggerConfig.AUTHENTICATION_BASIC, scopes = { @AuthorizationScope(scope = CoreGroupPermission.REQUEST_ITEM_DELETE, description = "") }), @Authorization(value = SwaggerConfig.AUTHENTICATION_CIDMST, scopes = { @AuthorizationScope(scope = CoreGroupPermission.REQUEST_ITEM_DELETE, description = "") }) })
public ResponseEntity<?> delete(@ApiParam(value = "Item's uuid identifier.", required = true) @PathVariable @NotNull String backendId) {
IdmRequestItemService service = ((IdmRequestItemService) this.getService());
IdmRequestItemDto dto = service.get(backendId);
IdmRequestDto request = DtoUtils.getEmbedded(dto, IdmRequestItem_.request, IdmRequestDto.class);
//
checkAccess(dto, IdmBasePermission.DELETE);
// Request item where his request is in the Executed state can not be delete or change
if (RequestState.EXECUTED == request.getState()) {
throw new ResultCodeException(CoreResultCode.REQUEST_EXECUTED_CANNOT_DELETE, ImmutableMap.of("request", dto));
}
// In others states, will be request item set to Canceled result and save.
if (RequestState.CONCEPT == request.getState()) {
service.delete(dto);
} else {
dto.setState(RequestState.CANCELED);
dto.setResult(new OperationResultDto(OperationState.CANCELED));
service.save(dto);
}
return new ResponseEntity<Object>(HttpStatus.NO_CONTENT);
}
use of eu.bcvsolutions.idm.core.api.dto.IdmRequestDto in project CzechIdMng by bcvsolutions.
the class IdmRequestController method getChanges.
@ResponseBody
@RequestMapping(value = "/{backendId}/entity/{entityId}/changes", method = RequestMethod.GET)
@PreAuthorize("hasAuthority('" + CoreGroupPermission.REQUEST_READ + "')")
@ApiOperation(value = "Request changes of entity", nickname = "getRequestEntityChange", response = IdmRequestItemDto.class, tags = { IdmRequestItemController.TAG }, authorizations = { @Authorization(value = SwaggerConfig.AUTHENTICATION_BASIC, scopes = { @AuthorizationScope(scope = CoreGroupPermission.REQUEST_READ, description = "") }), @Authorization(value = SwaggerConfig.AUTHENTICATION_CIDMST, scopes = { @AuthorizationScope(scope = CoreGroupPermission.REQUEST_READ, description = "") }) })
public ResponseEntity<?> getChanges(@ApiParam(value = "Item's uuid identifier.", required = true) @PathVariable @NotNull String backendId, @ApiParam(value = "Entity's uuid identifier.", required = true) @PathVariable @NotNull String entityId) {
IdmRequestDto dto = this.getDto(backendId);
// Find item by entity ID and request ID
IdmRequestItemFilter itemFilter = new IdmRequestItemFilter();
itemFilter.setRequestId(dto.getId());
itemFilter.setOwnerId(UUID.fromString(entityId));
List<IdmRequestItemDto> items = requestItemService.find(itemFilter, null, IdmBasePermission.READ).getContent();
if (items.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
IdmRequestItemChangesDto result = requestManager.getChanges(items.get(0));
if (result == null) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
//
return new ResponseEntity<>(result, HttpStatus.OK);
}
Aggregations