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 'rxjs/add/operator/filter';
5
import { ConfigurationService } from '../utils/configuration/configuration.service';
6

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

    
10
  constructor(private router: Router, private config: ConfigurationService) {}
11

    
12
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
13
    let customRedirect = route.data['redirect'];
14
    console.log("In IsRouteEnabled");
15
    console.log(state.url.split("?")[0].substring(1));
16
    let isEnabled = this.config.isPageEnabled(state.url.split("?")[0].substring(1));
17
    let redirect = !!customRedirect ? customRedirect : '/error';
18
    isEnabled.filter(enabled => !enabled)
19
      .subscribe(() => this.router.navigate([redirect], { queryParams: { "page": state.url } }));
20

    
21
      return isEnabled;
22
   }
23
}
(3-3/3)