blob: a21d79be53de660cf46af7a71ee49d76464994dc [file] [log] [blame]
import { NgModule, Component, OnInit, HostListener, Input } from '@angular/core';
import { MdGridListModule } from '@angular/material';
import { MdDialog, MdDialogConfig } from '@angular/material';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { BrowserModule } from '@angular/platform-browser';
import { SessionContext } from '../../common/session-context';
import { UserModule } from '../../model/user-module';
import { UserModuleService } from '../../services/user-module.service';
import { AuthenticationService } from '../../services/authentication.service';
@Component({
selector: 'app-module-grid',
templateUrl: './module-grid.component.html',
styleUrls: ['./module-grid.component.css']
})
export class ModuleGridComponent implements OnInit {
@Input() moduleRights = true;
userModules: UserModule[] = new Array();
roles: string[] = new Array();
constructor(public sessionContext: SessionContext,
private userModuleService: UserModuleService,
private authService: AuthenticationService) { }
ngOnInit() {
this.getUserModules();
}
private goToElogbookIfValid(userModule: UserModule): void {
const elogbookLink = userModule.link + '?accessToken=' + encodeURI( this.sessionContext.getAccessToken() );
this.authService.checkAuth().subscribe(res => {
window.open(elogbookLink, '_blank');
},
error => {
console.log(error);
});
}
getUserModules(): void {
this.userModuleService.getUserModulesForUser().subscribe(userModuleResult => {
this.setModulesForRole(userModuleResult);
},
error => {
console.log(error);
});
}
setModulesForRole(userModuleResult): void {
this.roles = this.sessionContext.getAccessTokenDecoded().roles;
for (const umr of userModuleResult) {
if (this.roles.indexOf(umr.requiredRole) !== -1) {
this.userModules.push(umr);
this.moduleRights = true;
}
}
if (this.userModules.length === 0) {
console.log('Der Benutzer hat keine Rechte');
this.moduleRights = false;
}
}
@HostListener('window:focus', ['$event'])
onFocus(event: any): void {
this.authService.checkAuth().subscribe(res => { },
error => {
console.log(error);
});
}
}