Adding a default permission system

This commit is contained in:
Zoe Roux 2020-04-02 23:38:26 +02:00
parent b9b5039e82
commit c0243c8404
2 changed files with 13 additions and 4 deletions

View File

@ -1,4 +1,4 @@
import {HTTP_INTERCEPTORS, HttpClientModule} from '@angular/common/http'; import {HTTP_INTERCEPTORS, HttpClient, HttpClientModule} from '@angular/common/http';
import {APP_INITIALIZER, ChangeDetectorRef, NgModule} from '@angular/core'; import {APP_INITIALIZER, ChangeDetectorRef, NgModule} from '@angular/core';
import { MatButtonModule } from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card'; import { MatCardModule } from '@angular/material/card';
@ -119,7 +119,7 @@ export function loadConfig(oidcConfigService: OidcConfigService)
}) })
export class AppModule export class AppModule
{ {
constructor(private oidcSecurityService: OidcSecurityService, private oidcConfigService: OidcConfigService) constructor(private oidcSecurityService: OidcSecurityService, private oidcConfigService: OidcConfigService, http: HttpClient)
{ {
this.oidcConfigService.onConfigurationLoaded.subscribe((configResult: ConfigResult) => this.oidcConfigService.onConfigurationLoaded.subscribe((configResult: ConfigResult) =>
{ {
@ -144,5 +144,7 @@ export class AppModule
this.oidcSecurityService.setupModule(config, configResult.authWellknownEndpoints); this.oidcSecurityService.setupModule(config, configResult.authWellknownEndpoints);
}); });
http.get("/api/account/default-permissions").subscribe((result: string[]) => AuthGuard.defaultPermissions = result);
} }
} }

View File

@ -16,6 +16,7 @@ import {AuthService} from "../../services/auth.service";
export class AuthGuard export class AuthGuard
{ {
public static guards: any[] = []; public static guards: any[] = [];
public static defaultPermissions: string[];
static forPermissions(...permissions: string[]) static forPermissions(...permissions: string[])
{ {
@ -55,7 +56,13 @@ export class AuthGuard
} }
return true; return true;
} }
else
{
for (let perm of permissions)
if (!AuthGuard.defaultPermissions.includes(perm))
return false; return false;
return true;
}
} }
} }