Project

General

Profile

« Previous | Next » 

Revision 61332

[Library | Angular 11]: Update canActivate function definition

View differences:

isRouteEnabled.guard.ts
1 1
import {Observable} from 'rxjs';
2 2
import {take, tap} from 'rxjs/operators';
3 3
import {Injectable} from '@angular/core';
4
import {ActivatedRouteSnapshot, CanActivate, Data, Router, RouterStateSnapshot} from '@angular/router';
4
import {ActivatedRouteSnapshot, CanActivate, Data, Router, RouterStateSnapshot, UrlTree} from '@angular/router';
5 5
import {ConfigurationService} from '../utils/configuration/configuration.service';
6 6
import {ConnectHelper} from '../connect/connectHelper';
7 7
import {properties} from "../../../environments/environment";
......
10 10
export class IsRouteEnabled implements CanActivate {
11 11
  
12 12
  constructor(private router: Router,
13
              private config: ConfigurationService) {}
14

  
13
              private config: ConfigurationService) {
14
  }
15
  
15 16
  check(data: Data, path: string): Observable<boolean> | boolean {
16 17
    const customRedirect = data['redirect'];
17 18
    const redirect = customRedirect ? customRedirect : '/error';
18
    let community  = ConnectHelper.getCommunityFromDomain(properties.domain);
19
    let community = ConnectHelper.getCommunityFromDomain(properties.domain);
19 20
    if (!community && data['community']) { // for openaire or connect
20 21
      community = data['community'];
21 22
    }
22 23
    if (!community) {
23 24
      community = properties.adminToolsCommunity;
24 25
    }
25
    return this.config.isPageEnabledByState(properties, community, '/'+path).pipe(take(1),tap((enabled) => {
26
      if(!enabled){
26
    return this.config.isPageEnabledByState(properties, community, '/' + path).pipe(take(1), tap((enabled) => {
27
      if (!enabled) {
27 28
        this.router.navigate([redirect], {queryParams: {'page': path}});
28 29
      }
29 30
    }));
30

  
31
    
31 32
  }
32

  
33
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean {
33
  
34
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
34 35
    return this.check(route.data, state.url);
35 36
  }
36

  
37
  
37 38
}

Also available in: Unified diff