Revision 54647
Added by Konstantinos Triantafyllou over 5 years ago
adminLoginGuard.guard.ts | ||
---|---|---|
1 | 1 |
import { Injectable } from '@angular/core'; |
2 |
import { Router,CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
|
|
2 |
import {Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanLoad, Route} from '@angular/router';
|
|
3 | 3 |
import {Observable} from 'rxjs/Observable'; |
4 | 4 |
import {Session} from './utils/helper.class'; |
5 | 5 |
import {LoginErrorCodes} from './utils/guardHelper.class'; |
6 | 6 |
|
7 | 7 |
@Injectable() |
8 |
export class AdminLoginGuard implements CanActivate { |
|
8 |
export class AdminLoginGuard implements CanActivate, CanLoad {
|
|
9 | 9 |
|
10 | 10 |
constructor(private router: Router) {} |
11 | 11 |
|
12 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
13 |
var user; |
|
14 |
var loggedIn = false; |
|
15 |
var isAdmin = false; |
|
16 |
var errorCode = LoginErrorCodes.NOT_LOGGIN; |
|
12 |
check(route: Route) : boolean{ |
|
13 |
let loggedIn = false; |
|
14 |
let isAdmin = false; |
|
15 |
let errorCode = LoginErrorCodes.NOT_LOGIN; |
|
17 | 16 |
if(Session.isLoggedIn()){ |
18 | 17 |
loggedIn = true; |
19 |
if(!Session.isLoggedIn()){ |
|
20 |
loggedIn = false; |
|
21 |
errorCode = LoginErrorCodes.NOT_VALID; |
|
22 |
}else { |
|
23 |
isAdmin = Session.isPortalAdministrator(); |
|
24 |
if(!isAdmin){ |
|
25 |
errorCode = LoginErrorCodes.NOT_ADMIN; |
|
26 |
} |
|
18 |
isAdmin = Session.isPortalAdministrator(); |
|
19 |
if(!isAdmin){ |
|
20 |
errorCode = LoginErrorCodes.NOT_ADMIN; |
|
27 | 21 |
} |
28 |
}else{ |
|
29 |
errorCode =LoginErrorCodes.NOT_LOGGIN; |
|
30 | 22 |
} |
31 |
|
|
32 |
if(!loggedIn){ |
|
23 |
if(!loggedIn || !isAdmin) { |
|
33 | 24 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
34 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
35 |
|
|
36 |
return false; |
|
37 |
}else if(!isAdmin){ |
|
38 |
// this.guardHelper.redirect("/user-info",errorCode,state.url); |
|
39 |
this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl": state.url } }); |
|
40 |
return false; |
|
41 |
}else{ |
|
42 |
return true; |
|
25 |
route.path = '/' + route.path; |
|
26 |
this.router.navigate(['user-info'], {queryParams: {"errorCode": errorCode, "redirectUrl": route.path}}); |
|
43 | 27 |
} |
28 |
return loggedIn && isAdmin; |
|
44 | 29 |
} |
30 |
|
|
31 |
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean { |
|
32 |
return this.check(route.routeConfig); |
|
33 |
} |
|
34 |
|
|
35 |
canLoad(route: Route): Observable<boolean> | Promise<boolean> | boolean { |
|
36 |
return this.check(route); |
|
37 |
} |
|
45 | 38 |
} |
Also available in: Unified diff
[CanLoadTest]: Login Guards implement canLoad now