Project

General

Profile

1
import { Injectable } from '@angular/core';
2
import { Router,CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router';
3
import {Observable}       from 'rxjs/Observable';
4
import {Session} from './utils/helper.class';
5
import {ErrorCodes} from './utils/guardHelper.class';
6
@Injectable()
7
export class AdminLoginGuard implements CanActivate {
8

    
9
  constructor(private router: Router) {}
10

    
11
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
12
    var user;
13
    var loggedIn = false;
14
    var isAdmin = false;
15
    var errorCode = ErrorCodes.NOT_LOGGIN;
16

    
17
    if(Session.isLoggedIn()){
18
      loggedIn = true;
19
      if(!Session.isValidAndRemove()){
20
        loggedIn = false;
21
        errorCode = ErrorCodes.NOT_VALID;
22
      }else {
23
        isAdmin = Session.isAdminUser();
24
        if(!isAdmin){
25
          errorCode = ErrorCodes.NOT_ADMIN;
26
        }
27
      }
28
    }else{
29
      errorCode =ErrorCodes.NOT_LOGGIN;
30
    }
31

    
32
    if(!loggedIn){
33
      // 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;
43
    }
44
  }
45
}
(1-1/8)