argos/dmp-frontend/src/app/shared/components/navigation/navigation.component.ts

45 lines
1.2 KiB
TypeScript
Raw Normal View History

2017-12-14 11:41:26 +01:00
import { Component } from '@angular/core';
import { Principal } from '../../../models/login/Principal';
import { AuthService } from '../../../services/auth/auth.service';
2018-03-28 15:24:47 +02:00
import { LanguageResolverService } from '../../../services/language-resolver/language-resolver.service';
2017-12-14 11:41:26 +01:00
@Component({
selector: 'app-navigation',
templateUrl: 'navigation.component.html',
2018-03-28 15:24:47 +02:00
styleUrls: ['./navigation.component.css'],
providers: []
2017-12-14 11:41:26 +01:00
})
export class NavigationComponent {
invert = false;
2018-03-28 15:24:47 +02:00
constructor(private authentication: AuthService, private languageResolver: LanguageResolverService) {
2017-12-14 11:41:26 +01:00
}
public logout(): void {
this.authentication.logout();
}
2018-03-28 15:24:47 +02:00
2017-12-14 11:41:26 +01:00
public isAuthenticated(): boolean {
return !(!this.authentication.current())
}
public isAdmin(): boolean {
if (!this.authentication.current()) { return false }
const principalRoles = this.authentication.current().appRoles;
for (let i = 0; i < principalRoles.length; i++) {
if (principalRoles[i] === Principal.AppRole.Admin) {
return true;
}
}
return false;
}
2017-12-21 09:54:49 +01:00
public getPrincipalName(): string {
const principal: Principal = this.authentication.current();
if (principal) { return principal.name; }
return '';
}
2017-12-14 11:41:26 +01:00
}