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

    
7
@Injectable()
8
export class LoginGuard implements CanActivate {
9

    
10
  constructor(private router: Router) {}
11

    
12
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
13
    var user;
14
    var loggedIn = false;
15
    var errorCode = ErrorCodes.NOT_LOGGIN;
16
    if(Session.isLoggedIn()){
17
      loggedIn = true;
18
      if(!Session.isValidAndRemove()){
19
        loggedIn = false;
20
        errorCode = ErrorCodes.NOT_VALID;
21
      }
22
    }else{
23
      errorCode = ErrorCodes.NOT_LOGGIN;
24
    }
25
    if(!loggedIn){
26
      // this.guardHelper.redirect("/user-info",errorCode,state.url);
27
      this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl":  state.url } });
28
      return false;
29
    }else{
30
      return true;
31
    }
32
  }
33
}
(3-3/8)