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 FreeGuard implements CanActivate {
9

    
10
  constructor(private router: Router) {}
11

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

    
18
    if(Session.isLoggedIn()){
19
      loggedIn = true;
20
      if(!Session.isValidAndRemove()){
21
        loggedIn = false;
22
        valid = false;
23
        errorCode = ErrorCodes.NOT_VALID;
24
      }
25
    }
26

    
27
    if(!valid){
28
      // this.guardHelper.redirect("/user-info",errorCode,state.url);
29

    
30
      this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl":  state.url } });
31
      return false;
32
    }
33
    return true;
34

    
35
  }
36
}
(2-2/8)