Skip to content
Snippets Groups Projects
Commit aa47d063 authored by Alex ORLUC's avatar Alex ORLUC
Browse files

FEAT #13670 TIME 2 fix js error http order in guard

parent 8c8b2dc7
No related branches found
No related tags found
No related merge requests found
<mat-sidenav-container class="maarch-container" autosize> <mat-sidenav-container class="maarch-container" autosize>
<mat-sidenav #snavLeft *ngIf="!headerService.hideSideBar" class="panel-left" [mode]="appService.getViewMode() ? 'over' : 'side'" <mat-sidenav #snavLeft class="panel-left" [mode]="appService.getViewMode() ? 'over' : 'side'"
[fixedInViewport]="appService.getViewMode()" [opened]="appService.getViewMode() ? false : true" [fixedInViewport]="appService.getViewMode()" [opened]="appService.getViewMode() || headerService.hideSideBar ? false : true"
autoFocus="false" style="overflow-x:hidden;" [class.sideBarForm]="headerService.sideBarForm && !appService.getViewMode()" [class.sideBarFormMobile]="appService.getViewMode() && headerService.sideBarForm" [ngStyle]="{'width': appService.getViewMode() ? '80%' : '350px'}"> autoFocus="false" style="overflow-x:hidden;" [class.sideBarForm]="headerService.sideBarForm && !appService.getViewMode()" [class.sideBarFormMobile]="appService.getViewMode() && headerService.sideBarForm" [ngStyle]="{'width': appService.getViewMode() ? '80%' : '350px'}">
<header-panel *ngIf="headerService.showhHeaderPanel"></header-panel> <header-panel *ngIf="headerService.showhHeaderPanel && !headerService.hideSideBar"></header-panel>
<menu-shortcut *ngIf="headerService.showMenuShortcut"></menu-shortcut> <menu-shortcut *ngIf="headerService.showMenuShortcut && !headerService.hideSideBar"></menu-shortcut>
<menu-nav *ngIf="headerService.showMenuShortcut"></menu-nav> <menu-nav *ngIf="headerService.showMenuShortcut && !headerService.hideSideBar"></menu-nav>
<ng-container *ngIf="!headerService.sideBarAdmin"> <ng-container *ngIf="!headerService.sideBarAdmin && !headerService.hideSideBar">
<basket-home #basketHome></basket-home> <basket-home #basketHome></basket-home>
<mat-divider></mat-divider> <mat-divider></mat-divider>
<panel-folder #panelFolder></panel-folder> <panel-folder #panelFolder></panel-folder>
</ng-container> </ng-container>
<div id="adminMenu" style="display: contents;"></div> <div id="adminMenu" *ngIf="!headerService.hideSideBar" style="display: contents;"></div>
</mat-sidenav> </mat-sidenav>
<mat-sidenav-content> <mat-sidenav-content>
<router-outlet></router-outlet> <router-outlet></router-outlet>
......
...@@ -6,6 +6,9 @@ import { HeaderService } from '../service/header.service'; ...@@ -6,6 +6,9 @@ import { HeaderService } from '../service/header.service';
import { AppService } from '../service/app.service'; import { AppService } from '../service/app.service';
import { MatSidenav } from '@angular/material/sidenav'; import { MatSidenav } from '@angular/material/sidenav';
import { LangService } from '../service/app-lang.service'; import { LangService } from '../service/app-lang.service';
import { HttpClient } from '@angular/common/http';
import { map } from 'rxjs/internal/operators/map';
import { AuthService } from '../service/auth.service';
/** Custom options the configure the tooltip's default show/hide delays. */ /** Custom options the configure the tooltip's default show/hide delays. */
export const myCustomTooltipDefaults: MatTooltipDefaultOptions = { export const myCustomTooltipDefaults: MatTooltipDefaultOptions = {
...@@ -25,14 +28,16 @@ export const myCustomTooltipDefaults: MatTooltipDefaultOptions = { ...@@ -25,14 +28,16 @@ export const myCustomTooltipDefaults: MatTooltipDefaultOptions = {
}) })
export class AppComponent implements OnInit { export class AppComponent implements OnInit {
@ViewChild('snavLeft', { static: false }) snavLeft: MatSidenav; @ViewChild('snavLeft', { static: true }) snavLeft: MatSidenav;
constructor( constructor(
public http: HttpClient,
public langService: LangService, public langService: LangService,
iconReg: MatIconRegistry, iconReg: MatIconRegistry,
sanitizer: DomSanitizer, sanitizer: DomSanitizer,
public appService: AppService, public appService: AppService,
public headerService: HeaderService public headerService: HeaderService,
private authService: AuthService
) { ) {
iconReg.addSvgIcon('maarchLogo', sanitizer.bypassSecurityTrustResourceUrl('../rest/images?image=onlyLogo')); iconReg.addSvgIcon('maarchLogo', sanitizer.bypassSecurityTrustResourceUrl('../rest/images?image=onlyLogo'));
...@@ -43,13 +48,8 @@ export class AppComponent implements OnInit { ...@@ -43,13 +48,8 @@ export class AppComponent implements OnInit {
} }
ngOnInit(): void { async ngOnInit(): Promise<void> {
this.headerService.hideSideBar = true; this.headerService.hideSideBar = true;
setTimeout(() => {
this.headerService.sideNavLeft = this.snavLeft;
}, 200);
this.headerService.sideNavLeft = this.snavLeft; this.headerService.sideNavLeft = this.snavLeft;
} }
} }
<mat-expansion-panel #basketPanel class="basketList" [expanded]="!loading"> <mat-expansion-panel #basketPanel class="basketList" expanded *ngIf="!loading">
<mat-expansion-panel-header> <mat-expansion-panel-header>
<mat-panel-title> <mat-panel-title>
<i class="fa fa-inbox panelIconMenu"></i>&nbsp;{{lang.myBaskets}} <i class="fa fa-inbox panelIconMenu"></i>&nbsp;{{lang.myBaskets}}
......
...@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core'; ...@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, CanDeactivate } from '@angular/router'; import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, CanDeactivate } from '@angular/router';
import { HttpClient } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { Observable, of } from 'rxjs'; import { Observable, of } from 'rxjs';
import { map, tap, catchError, exhaustMap } from 'rxjs/operators'; import { map, tap, catchError, exhaustMap, filter } from 'rxjs/operators';
import { HeaderService } from './header.service'; import { HeaderService } from './header.service';
import { ProcessComponent } from '../app/process/process.component'; import { ProcessComponent } from '../app/process/process.component';
import { PrivilegeService } from './privileges.service'; import { PrivilegeService } from './privileges.service';
...@@ -24,7 +24,7 @@ export class AppGuard implements CanActivate { ...@@ -24,7 +24,7 @@ export class AppGuard implements CanActivate {
private privilegeService: PrivilegeService private privilegeService: PrivilegeService
) { } ) { }
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any { canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
console.log('guard'); console.log('guard');
this.headerService.resetSideNavSelection(); this.headerService.resetSideNavSelection();
...@@ -79,7 +79,8 @@ export class AppGuard implements CanActivate { ...@@ -79,7 +79,8 @@ export class AppGuard implements CanActivate {
if (this.headerService.user.status === 'ABS') { if (this.headerService.user.status === 'ABS') {
console.log('ABS!'); console.log('ABS!');
return this.router.navigate(['/activate-user']); this.router.navigate(['/activate-user']);
return of(false);
} else { } else {
if (route.url.map((url: any) => url.path).filter((url: any) => ['signatureBook', 'content'].indexOf(url) > -1).length > 0) { if (route.url.map((url: any) => url.path).filter((url: any) => ['signatureBook', 'content'].indexOf(url) > -1).length > 0) {
this.headerService.hideSideBar = true; this.headerService.hideSideBar = true;
...@@ -91,7 +92,7 @@ export class AppGuard implements CanActivate { ...@@ -91,7 +92,7 @@ export class AppGuard implements CanActivate {
} else { } else {
this.headerService.sideBarAdmin = false; this.headerService.sideBarAdmin = false;
} }
return true; return of(true);
} }
} }
} else { } else {
...@@ -105,47 +106,11 @@ export class AppGuard implements CanActivate { ...@@ -105,47 +106,11 @@ export class AppGuard implements CanActivate {
// this.authService.changeKey = data.changeKey; // this.authService.changeKey = data.changeKey;
this.localStorage.setAppSession(data.instanceId); this.localStorage.setAppSession(data.instanceId);
tokenInfo = this.authService.getToken(); tokenInfo = this.authService.getToken();
console.log(tokenInfo);
if (tokenInfo !== null) { if (tokenInfo !== null) {
this.authService.setUrl(route.url.join('/')); this.authService.setUrl(route.url.join('/'));
console.log('Token trouvé !'); return tokenInfo;
console.log('Récupération données user...');
this.http.get('../rest/currentUser/profile')
.pipe(
map((dataUser: any) => {
this.headerService.user = {
id: dataUser.id,
status: data.status,
userId: dataUser.user_id,
firstname: dataUser.firstname,
lastname: dataUser.lastname,
entities: dataUser.entities,
groups: dataUser.groups,
preferences: dataUser.preferences,
privileges: dataUser.privileges[0] === 'ALL_PRIVILEGES' ? this.privilegeService.getAllPrivileges() : dataUser.privileges
};
this.headerService.nbResourcesFollowed = dataUser.nbFollowedResources;
this.privilegeService.resfreshUserShortcuts();
if (this.headerService.user.status === 'ABS') {
console.log('ABS!');
return this.router.navigate(['/activate-user']);
} else {
if (route.url.map((url: any) => url.path).filter((url: any) => ['signatureBook', 'content'].indexOf(url) > -1).length > 0) {
this.headerService.hideSideBar = true;
} else {
this.headerService.hideSideBar = false;
}
if (route.url.map((url: any) => url.path).filter((url: any) => url === 'administration').length > 0 || route.url.map((url: any) => url.path).filter((url: any) => url === 'profile').length > 0) {
this.headerService.sideBarAdmin = true;
} else {
this.headerService.sideBarAdmin = false;
}
return true;
}
})
).subscribe();
return true;
} else { } else {
this.authService.setCachedUrl(route.url.join('/')); this.authService.setCachedUrl(route.url.join('/'));
console.log('Aucun token trouvé ! Redirection sur login ...'); console.log('Aucun token trouvé ! Redirection sur login ...');
...@@ -153,6 +118,40 @@ export class AppGuard implements CanActivate { ...@@ -153,6 +118,40 @@ export class AppGuard implements CanActivate {
return false; return false;
} }
}), }),
filter((info: any) => info !== null),
exhaustMap(() => this.http.get('../rest/currentUser/profile')),
map((dataUser: any) => {
this.headerService.user = {
id: dataUser.id,
status: dataUser.status,
userId: dataUser.user_id,
firstname: dataUser.firstname,
lastname: dataUser.lastname,
entities: dataUser.entities,
groups: dataUser.groups,
preferences: dataUser.preferences,
privileges: dataUser.privileges[0] === 'ALL_PRIVILEGES' ? this.privilegeService.getAllPrivileges() : dataUser.privileges
};
this.headerService.nbResourcesFollowed = dataUser.nbFollowedResources;
this.privilegeService.resfreshUserShortcuts();
if (this.headerService.user.status === 'ABS') {
console.log('ABS!');
return this.router.navigate(['/activate-user']);
} else {
if (route.url.map((url: any) => url.path).filter((url: any) => ['signatureBook', 'content'].indexOf(url) > -1).length > 0) {
this.headerService.hideSideBar = true;
} else {
this.headerService.hideSideBar = false;
}
if (route.url.map((url: any) => url.path).filter((url: any) => url === 'administration').length > 0 || route.url.map((url: any) => url.path).filter((url: any) => url === 'profile').length > 0) {
this.headerService.sideBarAdmin = true;
} else {
this.headerService.sideBarAdmin = false;
}
return true;
}
}),
); );
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment