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 { MatButtonModule } from '@angular/material/button';
import { MatCardModule } from '@angular/material/card';
@ -119,7 +119,7 @@ export function loadConfig(oidcConfigService: OidcConfigService)
})
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) =>
{
@ -144,5 +144,7 @@ export class AppModule
this.oidcSecurityService.setupModule(config, configResult.authWellknownEndpoints);
});
http.get("/api/account/default-permissions").subscribe((result: string[]) => AuthGuard.defaultPermissions = result);
}
}

View File

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