Compare commits

..

2 Commits

3 changed files with 8 additions and 4 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

@ -131,7 +131,7 @@
<li class="nav_li"><a class="nav_link2" [routerLink]="['/birthdays']">Famous Birthdays</a></li>
<li class="nav_li"><a class="nav_link2" [routerLink]="['/community']">Community</a></li>
@if (isAuthenticated()) {
@if (hasAccess([PermissionClaim.HEAD_MOD])) {
@if (hasAccess([PermissionClaim.HEAD_MOD, PermissionClaim.MOD])) {
<li class="nav_li"><a class="nav_link2" [routerLink]="['/chat']">Chat</a></li>
}
}

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" ]