From dee73981fc37be72d050be6c2c3e78e868277ad7 Mon Sep 17 00:00:00 2001 From: "argiro.kokogiannaki" Date: Mon, 19 Mar 2018 14:33:08 +0000 Subject: [PATCH] Change isRouteEnabled to get admintools API from properties git-svn-id: https://svn.driver.research-infrastructures.eu/driver/dnet40/modules/uoa-services-library/trunk/ng-openaire-library/src/app@51331 d315682c-612b-4755-9ff5-7f18f6832af3 --- error/isRouteEnabled.guard.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/error/isRouteEnabled.guard.ts b/error/isRouteEnabled.guard.ts index 3a22c90f..e567f629 100644 --- a/error/isRouteEnabled.guard.ts +++ b/error/isRouteEnabled.guard.ts @@ -4,27 +4,29 @@ import {Observable} from 'rxjs/Observable'; import 'rxjs/add/operator/filter'; import { ConfigurationService } from '../utils/configuration/configuration.service'; import{EnvProperties} from '../utils/properties/env-properties'; +import { EnvironmentSpecificService} from '../utils/properties/environment-specific.service'; @Injectable() export class IsRouteEnabled implements CanActivate { - constructor(private route: ActivatedRoute,private router: Router, private config: ConfigurationService) {} + constructor(private route: ActivatedRoute,private router: Router, private config: ConfigurationService, private propertiesService:EnvironmentSpecificService ) {} canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable | boolean { let customRedirect = route.data['redirect']; - let api = route.data['api']; - let community = route.data['community'] - if(!community){ - community = (route.queryParams["communityId"])?route.queryParams["communityId"]:route.queryParams["community"]; - } - if(community){ - let isEnabled = this.config.isPageEnabled(api, community,"/"+state.url.split("?")[0].substring(1)); - let redirect = !!customRedirect ? customRedirect : '/error'; + let community = route.queryParams["communityId"]; + if(!community && route.data['community']){ // for openaire + let community = route.data['community'] + } - isEnabled.filter(enabled => !enabled) + + if(community){ + let redirect = !!customRedirect ? customRedirect : '/error'; + let obs = this.propertiesService.subscribeEnvironment().map(res=>res["adminToolsAPIURL"]).mergeMap(url => { + return this.config.isPageEnabled(url, community,"/"+state.url.split("?")[0].substring(1))}); + obs.filter(enabled => !enabled) .subscribe(() => this.router.navigate([redirect], { queryParams: { "page": state.url } })); - return isEnabled; + return obs; } return true; }