72541: InfoModule, EndUserAgreementComponent, UserAgreementGuard

This commit is contained in:
Kristof De Langhe
2020-08-19 17:47:33 +02:00
parent f1db0c044b
commit 8768645e4a
24 changed files with 258 additions and 22 deletions

View File

@@ -12,6 +12,7 @@ import { RequestService } from '../data/request.service';
import { BrowseDefinition } from './browse-definition.model';
import { DSpaceObject } from './dspace-object.model';
import { getUnauthorizedPath } from '../../app-routing.module';
import { getEndUserAgreementPath } from '../../info/info-routing.module';
/**
* This file contains custom RxJS operators that can be used in multiple places
@@ -192,6 +193,17 @@ export const returnUnauthorizedUrlTreeOnFalse = (router: Router) =>
return authorized ? authorized : router.parseUrl(getUnauthorizedPath())
}));
/**
* Operator that returns a UrlTree to the unauthorized page when the boolean received is false
* @param router
*/
export const returnEndUserAgreementUrlTreeOnFalse = (router: Router) =>
(source: Observable<boolean>): Observable<boolean | UrlTree> =>
source.pipe(
map((hasAgreed: boolean) => {
return hasAgreed ? hasAgreed : router.parseUrl(getEndUserAgreementPath())
}));
export const getFinishedRemoteData = () =>
<T>(source: Observable<RemoteData<T>>): Observable<RemoteData<T>> =>
source.pipe(find((rd: RemoteData<T>) => !rd.isLoading));