Expand moderator roles by adding SCOPE_mod permission and updating authorization logic.
This commit is contained in:
parent
9e5148fa8c
commit
cd18fd4b96
|
|
@ -42,7 +42,7 @@ public class EventController {
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String> authorities = jwt.getClaimAsStringList("authorities");
|
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);
|
throw new ResponseStatusException(HttpStatus.FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -64,4 +64,8 @@ public class EventController {
|
||||||
|
|
||||||
return eventPublisher.subscribe(new EventUser(subject, authorities), json);
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ components:
|
||||||
schemas:
|
schemas:
|
||||||
PermissionClaim:
|
PermissionClaim:
|
||||||
type: string
|
type: string
|
||||||
enum: [ SCOPE_user, SCOPE_head_mod ]
|
enum: [ SCOPE_user, SCOPE_head_mod, SCOPE_mod ]
|
||||||
description: Permission claims used for authorization
|
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" ]
|
x-enum-descriptions: [ "User permission", "Head moderator permission" ]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user