Project

General

Profile

1
import {Injectable} from '@angular/core';
2
import {
3
  Router,
4
  CanActivate,
5
  ActivatedRouteSnapshot,
6
  RouterStateSnapshot,
7
  Route,
8
  CanLoad,
9
  UrlSegment
10
} from '@angular/router';
11
import {Observable} from 'rxjs';
12
import {Session} from './utils/helper.class';
13
import {LoginErrorCodes} from './utils/guardHelper.class';
14

    
15
@Injectable()
16
export class LoginGuard implements CanActivate {
17

    
18
  constructor(private router: Router) {
19
  }
20

    
21
  check(path: string): boolean {
22
    let loggedIn = false;
23
    if (Session.isLoggedIn()) {
24
      loggedIn = true;
25
    }
26
    if (!loggedIn) {
27
      this.router.navigate(['/user-info'], {
28
        queryParams: {
29
          'errorCode': LoginErrorCodes.NOT_LOGIN,
30
          'redirectUrl': path
31
        }
32
      });
33
    }
34
    return loggedIn;
35
  }
36

    
37
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
38
    return this.check(state.url);
39
  }
40
}
(4-4/9)