Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,20 @@ public Mono<ResponseEntity<String>> revokeAdmin(@RequestHeader("Authorization")
@PreAuthorize("hasAuthority('user:update')")
public Mono<ResponseEntity<String>> downgradeAdmin(@RequestHeader("Authorization") String token,
@PathVariable String userLogin) {

Authentication authentication = SecurityContextHolder
.getContext()
.getAuthentication();

UserDto currentUser = (UserDto) authentication.getPrincipal();
if (currentUser.getLogin().equals(userLogin)) {
String message = messageSource.getMessage(
"user.downgrade.self",
null,
LocaleContextHolder.getLocale());
return Mono.just(ResponseEntity.badRequest().body(message));
}

// Call auth service to downgrade admin to manager globally
return authClient.downgradeAdmin(token, userLogin)
.flatMap(response -> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ user.duplicate=Duplicate user detected: {0}
user.delete.permanent.failed=Failed to permanently delete user: {0}
user.deleted.local=Local user deleted successfully
user.promoted.local=User promoted to local app role successfully
user.downgrade.self=You cannot downgrade your own role
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ user.duplicate=Utilisateur en double détecté : {0}
user.delete.permanent.failed=Échec de la suppression définitive de l''utilisateur : {0}
user.deleted.local=Utilisateur local supprimé avec succès
user.promoted.local=Utilisateur promu au rôle local de l''application avec succès
user.downgrade.self=Vous ne pouvez pas rétrograder votre propre rôle