Summary Table

Categories Total Count
PII 0
URL 0
DNS 0
EKL 0
IP 0
PORT 0
VsID 0
CF 0
AI 0
VPD 0
PL 0
Other 0

File Content

import { Injectable } from '@angular/core';
import { AuthenticationService } from './../../auth/auth.service';
import {
MenuModel,
ParentDropDownModel,
MenuTypes,
FppsMenuModel
} from './../menu/menu.component.model';
import { VersionModel } from './app-settings.model';
import { environment } from '../../../environments/environment';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Observable } from 'rxjs/Observable';
import { HttpClient } from '@angular/common/http';

@Injectable()
export class AppSettingsService extends MenuTypes {
navState = true; // state of navbar true === open;
navState$ = new BehaviorSubject(true); // observable that emits current nav state.
arsMenu: MenuModel = new MenuModel('ars', []);
ewvMenu: MenuModel = new MenuModel('ewv', []);
fppsMenu: MenuModel = new MenuModel('fpps', []);

userInfo;
constructor(
private authenticationService: AuthenticationService,
private http: HttpClient
) {
super();
this.userInfo = this.authenticationService.getDecodedUserInfo();
if (this.userInfo) {
this.setMenu();
}
}

setMenu() {
this.userInfo = this.authenticationService.getDecodedUserInfo();
if (this.userInfo) {
this.fppsMenu = new FppsMenuModel();
if (
this.userInfo.userRoles.some(role => role === 'EWV_BASE_USER') ||
this.userInfo.userRoles.some(role => role === 'EWV_ADMIN')
) {
this.setEwvMenu(this.userInfo);
}
if (
this.userInfo.userRoles.some(
role => role === 'ARS_BASE_ATTACHMENT_USER'
) ||
this.userInfo.userRoles.some(role => role === 'ARS_ADMIN') ||
this.userInfo.userRoles.some(
role => role === 'ARS_BASE_SUBMISSION_USER'
)
) {
this.setArsMenu(this.userInfo);
}
}
}

setEwvMenu(userInfo) {
this.ewvMenu = new MenuModel('ewv', []);
if (userInfo.userRoles.some(role => role === 'EWV_BASE_USER')) {
this.ewvMenu.dropDownGroups.push(...this.ewvBaseMenu);
}
if (userInfo.userRoles.some(role => role === 'EWV_ADMIN')) {
this.ewvMenu.dropDownGroups.push(...this.ewvAdminMenu);
}
}

setArsMenu(userInfo) {
this.arsMenu = new MenuModel('ars', []);
if (userInfo.userRoles.some(role => role === 'ARS_BASE_ATTACHMENT_USER')) {
this.arsMenu.dropDownGroups.push(this.arsBaseAttachmentMenu);
}
if (userInfo.userRoles.some(role => role === 'ARS_BASE_SUBMISSION_USER')) {
this.arsMenu.dropDownGroups.push(...this.arsSubmissionBaseMenu);
}
if (userInfo.userRoles.some(role => role === 'ARS_ADMIN')) {
this.arsMenu.dropDownGroups.push(...this.arsAdminMenu);
}
}

getMenu(menu: string): Observable<MenuModel> {
let currentMenu: MenuModel = null;
if (menu === 'ARS_MENU') {
currentMenu = this.arsMenu;
}
if (menu === 'EWV_MENU') {
currentMenu = this.ewvMenu;
}
if (menu === 'FPPS_MENU') {
currentMenu = this.fppsMenu;
}
return new Observable(observer => observer.next(currentMenu));
}
setNavState(bool: boolean) {
this.navState = bool;
this.navState$.next(this.navState);
}

getVersion() {
return this.http.get<VersionModel>(`${environment.nodeserver}/version`);
}
}