Expand moderator roles by adding SCOPE_mod permission and updating authorization logic.

This commit is contained in:
akastijn 2026-07-19 20:17:01 +02:00
parent 9e5148fa8c
commit cd18fd4b96
2 changed files with 7 additions and 3 deletions

View File

@ -42,7 +42,7 @@ public class EventController {
}
List<String> authorities = jwt.getClaimAsStringList("authorities");
if (authorities == null || !authorities.contains(PermissionClaimDto.HEAD_MOD.getValue())) {
if (authorities == null || doesNotHavePermission(authorities)) {
throw new ResponseStatusException(HttpStatus.FORBIDDEN);
}
@ -64,4 +64,8 @@ public class EventController {
return eventPublisher.subscribe(new EventUser(subject, authorities), json);
}
private static boolean doesNotHavePermission(List<String> authorities) {
return !authorities.contains(PermissionClaimDto.HEAD_MOD.getValue()) && !authorities.contains(PermissionClaimDto.MOD.getValue());
}
}

View File

@ -2,7 +2,7 @@ components:
schemas:
PermissionClaim:
type: string
enum: [ SCOPE_user, SCOPE_head_mod ]
enum: [ SCOPE_user, SCOPE_head_mod, SCOPE_mod ]
description: Permission claims used for authorization
x-enum-varnames: [ USER, HEAD_MOD ]
x-enum-varnames: [ USER, HEAD_MOD, MOD ]
x-enum-descriptions: [ "User permission", "Head moderator permission" ]