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

    
10
  constructor(private router: Router) {}
11

    
12
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
13
    var user;
14
    var role = route.data['role']
15
    var loggedIn = false;
16
    var isAuthorized = false;
17
    var errorCode = ErrorCodes.NOT_LOGGIN;
18

    
19
    if(Session.isLoggedIn()){
20
      loggedIn = true;
21
      if(!Session.isLoggedIn()){
22
        loggedIn = false;
23
        errorCode = ErrorCodes.NOT_VALID;
24
      }else {
25
          if(Session.isClaimsCurator() || Session.isPortalAdministrator()){
26
            isAuthorized =true;
27
          }
28
          if(!Session.isClaimsCurator() && !Session.isPortalAdministrator()){
29
            errorCode = ErrorCodes.NOT_ADMIN;
30
          }
31
        }
32
    }else{
33
      errorCode =ErrorCodes.NOT_LOGGIN;
34
    }
35

    
36
    if(!loggedIn){
37
      // this.guardHelper.redirect("/user-info",errorCode,state.url);
38
      this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl":  state.url } });
39

    
40
      return false;
41
    }else if(!isAuthorized){
42
        // this.guardHelper.redirect("/user-info",errorCode,state.url);
43
        this.router.navigate(['/user-info'], { queryParams: { "errorCode": errorCode, "redirectUrl":  state.url } });
44
        return false;
45
      }else{
46
      return true;
47
    }
48
  }
49
}
(2-2/9)