-
Notifications
You must be signed in to change notification settings - Fork 9
Gestion des Autorisations
Emmanuel DEMEY edited this page Feb 7, 2024
·
1 revision
Une nouvelle façon de gérer les autorisations aux API a été mis en place sur les modules suivants :
- structures
- datasets
- listes de codes
Cette pratique consiste à utiliser que des annotations PreAuthorize
sur les controlleurs, afin de centraliser le tout au même endroit et de faciliter la maintenance.
Voici un exemple complet qui indique que pour supprimer une structure, il faut soit être ADMIN soit être CONTRIBUTOR et vouloir supprimer une structure qui n'est pas encore publiée.
@PreAuthorize("
@AuthorizeMethodDecider.isAdmin() ||
@AuthorizeMethodDecider.isStructureContributor(#id, T(fr.insee.rmes.model.ValidationStatus).UNPUBLISHED)
")
@DeleteMapping("/structure/{id}")
@Operation(operationId = "deleteStructure", summary = "Delete a structure")
public ResponseEntity<Object> deleteStructure(@PathVariable("id") String id) throws RmesException {
structureService.deleteStructure(id);
return ResponseEntity.status(HttpStatus.SC_OK).body(id);
}