From 1dea55977e192edfb199df72389188f45f9070b6 Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Thu, 9 Apr 2020 18:23:47 +0200 Subject: [PATCH] FEAT #13670 TIME 0:40 add redirect to activate-user --- src/frontend/app/activate-user.component.html | 2 +- src/frontend/app/activate-user.component.ts | 9 +- src/frontend/service/app.guard.ts | 102 +++++++++++------- src/frontend/service/header.service.ts | 3 +- 4 files changed, 72 insertions(+), 44 deletions(-) diff --git a/src/frontend/app/activate-user.component.html b/src/frontend/app/activate-user.component.html index 198f32f71cc..4c4d995b67a 100755 --- a/src/frontend/app/activate-user.component.html +++ b/src/frontend/app/activate-user.component.html @@ -1,7 +1,7 @@ <div class="admin-container" [class.admin-is-mobile]="appService.getViewMode()" style="margin-top: -63px;"> <mat-toolbar color="primary" class="admin-toolbar"> <button mat-button> - <mat-icon class="maarchLogo" [svgIcon]="appService.getViewMode() ? 'maarchLogoOnly' : 'maarchLogo'"></mat-icon> + <mat-icon class="maarchLogoWhite" [svgIcon]="appService.getViewMode() ? 'maarchLogoOnly' : 'maarchLogo'"></mat-icon> </button> <h1 class="admin-toolbar-title text-center" >{{lang.missingAdvertTitle}}</h1> <span style="flex: 1 1 auto;"></span> diff --git a/src/frontend/app/activate-user.component.ts b/src/frontend/app/activate-user.component.ts index 9f43ab30e85..7cb88ccd9ee 100755 --- a/src/frontend/app/activate-user.component.ts +++ b/src/frontend/app/activate-user.component.ts @@ -53,8 +53,8 @@ export class ActivateUserComponent implements OnInit { ngOnInit(): void { this.loading = true; - - this.http.get('../rest/currentUser/profile') + if (this.headerService.user.status === 'ABS') { + this.http.get('../rest/currentUser/profile') .subscribe((data: any) => { this.user = data; @@ -68,6 +68,9 @@ export class ActivateUserComponent implements OnInit { }); this.loading = false; }); + } else { + this.router.navigate(['/home']); + } } showActions(basket: any) { @@ -83,7 +86,7 @@ export class ActivateUserComponent implements OnInit { this.http.put('../rest/users/' + this.headerService.user.id + '/status', { 'status': 'OK' }) .subscribe(() => { - + this.headerService.user.status = 'OK'; let basketsRedirectedIds: any = ''; this.user.redirectedBaskets.forEach((elem: any) => { diff --git a/src/frontend/service/app.guard.ts b/src/frontend/service/app.guard.ts index 6e5e572b524..0c36fd88c83 100644 --- a/src/frontend/service/app.guard.ts +++ b/src/frontend/service/app.guard.ts @@ -24,29 +24,23 @@ export class AppGuard implements CanActivate { private privilegeService: PrivilegeService ) { } - canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): any { + console.log('guard'); + this.headerService.resetSideNavSelection(); - if (route.url.map((url: any) => url.path).filter((url: any) => url === 'signatureBook').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; - } - let tokenInfo = this.authService.getToken(); if (tokenInfo !== null) { + console.log('Token trouvé !'); if (this.headerService.user.id === undefined) { + console.log('Récupération données user...'); return this.http.get('../rest/currentUser/profile') .pipe( map((data: any) => { this.headerService.user = { id: data.id, + status: data.status, userId: data.user_id, firstname: data.firstname, lastname: data.lastname, @@ -58,13 +52,49 @@ export class AppGuard implements CanActivate { this.headerService.nbResourcesFollowed = data.nbFollowedResources; this.privilegeService.resfreshUserShortcuts(); - return true; + + 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) => url === 'signatureBook').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; + } + }) ); } else { - return true; + console.log('Données user trouvé !'); + + 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) => url === 'signatureBook').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; + } } } else { + console.log('Aucun token trouvé ! Recupération du token ...'); + return this.http.get('../rest/authenticationInformations') .pipe( map((data: any) => { @@ -74,11 +104,14 @@ export class AppGuard implements CanActivate { tokenInfo = this.authService.getToken(); if (tokenInfo !== null) { + console.log('Token trouvé !'); + 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, @@ -90,11 +123,27 @@ export class AppGuard implements CanActivate { this.headerService.nbResourcesFollowed = dataUser.nbFollowedResources; this.privilegeService.resfreshUserShortcuts(); - return true; + 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) => url === 'signatureBook').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 { + console.log('Aucun token trouvé ! Redirection sur login ...'); this.authService.logout(); return false; } @@ -102,29 +151,6 @@ export class AppGuard implements CanActivate { ); } - if (this.headerService.user.id === undefined) { - return this.http.get('../rest/currentUser/profile') - .pipe( - map((data: any) => { - this.headerService.user = { - id: data.id, - userId: data.user_id, - firstname: data.firstname, - lastname: data.lastname, - entities: data.entities, - groups: data.groups, - preferences: data.preferences, - privileges: data.privileges[0] === 'ALL_PRIVILEGES' ? this.privilegeService.getAllPrivileges() : data.privileges - }; - - this.headerService.nbResourcesFollowed = data.nbFollowedResources; - this.privilegeService.resfreshUserShortcuts(); - return true; - }) - ); - } else { - return true; - } } } diff --git a/src/frontend/service/header.service.ts b/src/frontend/service/header.service.ts index 96904058b41..20c6a60c1fb 100755 --- a/src/frontend/service/header.service.ts +++ b/src/frontend/service/header.service.ts @@ -114,11 +114,10 @@ export class HeaderService { this.showMenuNav = true; this.sideBarAdmin = false; this.sideBarButton = null; - this.hideSideBar = false; + this.hideSideBar = true; } injectInSideBarLeft(template: TemplateRef<any>, viewContainerRef: ViewContainerRef, id: string = 'adminMenu', mode: string = '') { - if (mode === 'form') { this.sideBarForm = true; -- GitLab