72541: EndUserAgreementCurrentUserGuard and EndUserAgreementCookieGuard

This commit is contained in:
Kristof De Langhe
2020-09-03 17:22:38 +02:00
parent a0759098ea
commit eda1a34da5
17 changed files with 142 additions and 76 deletions

View File

@@ -3,7 +3,6 @@ import { RouterModule } from '@angular/router';
import { EditBitstreamPageComponent } from './edit-bitstream-page/edit-bitstream-page.component';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
import { BitstreamPageResolver } from './bitstream-page.resolver';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
const EDIT_BITSTREAM_PATH = ':id/edit';
@@ -19,7 +18,7 @@ const EDIT_BITSTREAM_PATH = ':id/edit';
resolve: {
bitstream: BitstreamPageResolver
},
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard]
}
])
],

View File

@@ -14,7 +14,6 @@ import { CollectionBreadcrumbResolver } from '../core/breadcrumbs/collection-bre
import { DSOBreadcrumbsService } from '../core/breadcrumbs/dso-breadcrumbs.service';
import { LinkService } from '../core/cache/builders/link.service';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
import {
ITEMTEMPLATE_PATH,
COLLECTION_EDIT_PATH,
@@ -27,7 +26,7 @@ import {
{
path: COLLECTION_CREATE_PATH,
component: CreateCollectionPageComponent,
canActivate: [AuthenticatedGuard, CreateCollectionPageGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard, CreateCollectionPageGuard]
},
{
path: ':id',
@@ -40,18 +39,18 @@ import {
{
path: COLLECTION_EDIT_PATH,
loadChildren: './edit-collection-page/edit-collection-page.module#EditCollectionPageModule',
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard]
},
{
path: 'delete',
pathMatch: 'full',
component: DeleteCollectionPageComponent,
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
},
{
path: ITEMTEMPLATE_PATH,
component: EditItemTemplatePageComponent,
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
resolve: {
item: ItemTemplatePageResolver,
breadcrumb: I18nBreadcrumbResolver
@@ -67,7 +66,7 @@ import {
path: '/edit/mapper',
component: CollectionItemMapperComponent,
pathMatch: 'full',
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard]
}
]
},

View File

@@ -10,7 +10,6 @@ import { DeleteCommunityPageComponent } from './delete-community-page/delete-com
import { CommunityBreadcrumbResolver } from '../core/breadcrumbs/community-breadcrumb.resolver';
import { DSOBreadcrumbsService } from '../core/breadcrumbs/dso-breadcrumbs.service';
import { LinkService } from '../core/cache/builders/link.service';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
import { COMMUNITY_EDIT_PATH, COMMUNITY_CREATE_PATH } from './community-page-routing-paths';
@NgModule({
@@ -19,7 +18,7 @@ import { COMMUNITY_EDIT_PATH, COMMUNITY_CREATE_PATH } from './community-page-rou
{
path: COMMUNITY_CREATE_PATH,
component: CreateCommunityPageComponent,
canActivate: [AuthenticatedGuard, CreateCommunityPageGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard, CreateCommunityPageGuard]
},
{
path: ':id',
@@ -32,13 +31,13 @@ import { COMMUNITY_EDIT_PATH, COMMUNITY_CREATE_PATH } from './community-page-rou
{
path: COMMUNITY_EDIT_PATH,
loadChildren: './edit-community-page/edit-community-page.module#EditCommunityPageModule',
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard]
},
{
path: 'delete',
pathMatch: 'full',
component: DeleteCommunityPageComponent,
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
},
{
path: '',

View File

@@ -9,7 +9,6 @@ import { ItemBreadcrumbResolver } from '../core/breadcrumbs/item-breadcrumb.reso
import { DSOBreadcrumbsService } from '../core/breadcrumbs/dso-breadcrumbs.service';
import { LinkService } from '../core/cache/builders/link.service';
import { UploadBitstreamComponent } from './bitstreams/upload/upload-bitstream.component';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
import { UPLOAD_BITSTREAM_PATH, ITEM_EDIT_PATH } from './item-page-routing-paths';
@NgModule({
@@ -35,12 +34,12 @@ import { UPLOAD_BITSTREAM_PATH, ITEM_EDIT_PATH } from './item-page-routing-paths
{
path: ITEM_EDIT_PATH,
loadChildren: './edit-item-page/edit-item-page.module#EditItemPageModule',
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard]
},
{
path: UPLOAD_BITSTREAM_PATH,
component: UploadBitstreamComponent,
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard]
}
],
}

View File

@@ -3,13 +3,12 @@ import { RouterModule } from '@angular/router';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
import { SubmissionSubmitComponent } from '../submission/submit/submission-submit.component';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
@NgModule({
imports: [
RouterModule.forChild([
{
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
path: '',
pathMatch: 'full',
component: SubmissionSubmitComponent,

View File

@@ -6,7 +6,6 @@ import { SubmissionEditComponent } from '../submission/edit/submission-edit.comp
import { WorkflowItemDeleteComponent } from './workflow-item-delete/workflow-item-delete.component';
import { WorkflowItemPageResolver } from './workflow-item-page.resolver';
import { WorkflowItemSendBackComponent } from './workflow-item-send-back/workflow-item-send-back.component';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
import {
WORKFLOW_ITEM_SEND_BACK_PATH,
WORKFLOW_ITEM_DELETE_PATH,
@@ -21,19 +20,19 @@ import {
resolve: { wfi: WorkflowItemPageResolver },
children: [
{
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
path: WORKFLOW_ITEM_EDIT_PATH,
component: SubmissionEditComponent,
data: { title: 'submission.edit.title' }
},
{
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
path: WORKFLOW_ITEM_DELETE_PATH,
component: WorkflowItemDeleteComponent,
data: { title: 'workflow-item.delete.title' }
},
{
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
path: WORKFLOW_ITEM_SEND_BACK_PATH,
component: WorkflowItemSendBackComponent,
data: { title: 'workflow-item.send-back.title' }

View File

@@ -3,14 +3,13 @@ import { RouterModule } from '@angular/router';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
import { SubmissionEditComponent } from '../submission/edit/submission-edit.component';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
@NgModule({
imports: [
RouterModule.forChild([
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
path: ':id/edit',
component: SubmissionEditComponent,
data: { title: 'submission.edit.title' }

View File

@@ -20,7 +20,7 @@ import { COLLECTION_MODULE_PATH } from './+collection-page/collection-page-routi
import { COMMUNITY_MODULE_PATH } from './+community-page/community-page-routing-paths';
import { ITEM_MODULE_PATH } from './+item-page/item-page-routing-paths';
import { ReloadGuard } from './core/reload/reload.guard';
import { EndUserAgreementGuard } from './core/end-user-agreement/end-user-agreement.guard';
import { EndUserAgreementCurrentUserGuard } from './core/end-user-agreement/end-user-agreement-current-user.guard';
@NgModule({
imports: [
@@ -29,40 +29,42 @@ import { EndUserAgreementGuard } from './core/end-user-agreement/end-user-agreem
children: [
{ path: '', redirectTo: '/home', pathMatch: 'full' },
{ path: 'reload/:rnd', component: PageNotFoundComponent, pathMatch: 'full', canActivate: [ReloadGuard] },
{ path: 'home', loadChildren: './+home-page/home-page.module#HomePageModule', data: { showBreadcrumbs: false } },
{ path: 'community-list', loadChildren: './community-list-page/community-list-page.module#CommunityListPageModule' },
{ path: 'id', loadChildren: './+lookup-by-id/lookup-by-id.module#LookupIdModule' },
{ path: 'handle', loadChildren: './+lookup-by-id/lookup-by-id.module#LookupIdModule' },
{ path: 'home', loadChildren: './+home-page/home-page.module#HomePageModule', data: { showBreadcrumbs: false }, canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: 'community-list', loadChildren: './community-list-page/community-list-page.module#CommunityListPageModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: 'id', loadChildren: './+lookup-by-id/lookup-by-id.module#LookupIdModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: 'handle', loadChildren: './+lookup-by-id/lookup-by-id.module#LookupIdModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: REGISTER_PATH, loadChildren: './register-page/register-page.module#RegisterPageModule' },
{ path: FORGOT_PASSWORD_PATH, loadChildren: './forgot-password/forgot-password.module#ForgotPasswordModule' },
{ path: COMMUNITY_MODULE_PATH, loadChildren: './+community-page/community-page.module#CommunityPageModule' },
{ path: COLLECTION_MODULE_PATH, loadChildren: './+collection-page/collection-page.module#CollectionPageModule' },
{ path: ITEM_MODULE_PATH, loadChildren: './+item-page/item-page.module#ItemPageModule' },
{ path: BITSTREAM_MODULE_PATH, loadChildren: './+bitstream-page/bitstream-page.module#BitstreamPageModule' },
{ path: FORGOT_PASSWORD_PATH, loadChildren: './forgot-password/forgot-password.module#ForgotPasswordModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: COMMUNITY_MODULE_PATH, loadChildren: './+community-page/community-page.module#CommunityPageModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: COLLECTION_MODULE_PATH, loadChildren: './+collection-page/collection-page.module#CollectionPageModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: ITEM_MODULE_PATH, loadChildren: './+item-page/item-page.module#ItemPageModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: BITSTREAM_MODULE_PATH, loadChildren: './+bitstream-page/bitstream-page.module#BitstreamPageModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{
path: 'mydspace',
loadChildren: './+my-dspace-page/my-dspace-page.module#MyDSpacePageModule',
canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
canActivate: [AuthenticatedGuard, EndUserAgreementCurrentUserGuard]
},
{ path: 'search', loadChildren: './+search-page/search-page-routing.module#SearchPageRoutingModule' },
{ path: 'browse', loadChildren: './+browse-by/browse-by.module#BrowseByModule'},
{ path: ADMIN_MODULE_PATH, loadChildren: './+admin/admin.module#AdminModule', canActivate: [SiteAdministratorGuard, EndUserAgreementGuard] },
{ path: 'search', loadChildren: './+search-page/search-page-routing.module#SearchPageRoutingModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: 'browse', loadChildren: './+browse-by/browse-by.module#BrowseByModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{ path: ADMIN_MODULE_PATH, loadChildren: './+admin/admin.module#AdminModule', canActivate: [SiteAdministratorGuard, EndUserAgreementCurrentUserGuard] },
{ path: 'login', loadChildren: './+login-page/login-page.module#LoginPageModule' },
{ path: 'logout', loadChildren: './+logout-page/logout-page.module#LogoutPageModule' },
{ path: 'submit', loadChildren: './+submit-page/submit-page.module#SubmitPageModule' },
{ path: 'submit', loadChildren: './+submit-page/submit-page.module#SubmitPageModule', canActivate: [EndUserAgreementCurrentUserGuard] },
{
path: 'workspaceitems',
loadChildren: './+workspaceitems-edit-page/workspaceitems-edit-page.module#WorkspaceitemsEditPageModule'
loadChildren: './+workspaceitems-edit-page/workspaceitems-edit-page.module#WorkspaceitemsEditPageModule',
canActivate: [EndUserAgreementCurrentUserGuard]
},
{
path: WORKFLOW_ITEM_MODULE_PATH,
loadChildren: './+workflowitems-edit-page/workflowitems-edit-page.module#WorkflowItemsEditPageModule'
loadChildren: './+workflowitems-edit-page/workflowitems-edit-page.module#WorkflowItemsEditPageModule',
canActivate: [EndUserAgreementCurrentUserGuard]
},
{
path: PROFILE_MODULE_PATH,
loadChildren: './profile-page/profile-page.module#ProfilePageModule', canActivate: [AuthenticatedGuard, EndUserAgreementGuard]
loadChildren: './profile-page/profile-page.module#ProfilePageModule', canActivate: [AuthenticatedGuard, EndUserAgreementCurrentUserGuard]
},
{ path: 'processes', loadChildren: './process-page/process-page.module#ProcessPageModule', canActivate: [AuthenticatedGuard, EndUserAgreementGuard] },
{ path: 'processes', loadChildren: './process-page/process-page.module#ProcessPageModule', canActivate: [AuthenticatedGuard, EndUserAgreementCurrentUserGuard] },
{ path: INFO_MODULE_PATH, loadChildren: './info/info.module#InfoModule' },
{ path: UNAUTHORIZED_PATH, component: UnauthorizedComponent },
{ path: '**', pathMatch: 'full', component: PageNotFoundComponent },

View File

@@ -163,7 +163,8 @@ import { SubmissionCcLicenseUrlDataService } from './submission/submission-cc-li
import { ConfigurationDataService } from './data/configuration-data.service';
import { ConfigurationProperty } from './shared/configuration-property.model';
import { ReloadGuard } from './reload/reload.guard';
import { EndUserAgreementGuard } from './end-user-agreement/end-user-agreement.guard';
import { EndUserAgreementCurrentUserGuard } from './end-user-agreement/end-user-agreement-current-user.guard';
import { EndUserAgreementCookieGuard } from './end-user-agreement/end-user-agreement-cookie.guard';
import { EndUserAgreementService } from './end-user-agreement/end-user-agreement.service';
/**
@@ -293,7 +294,8 @@ const PROVIDERS = [
MetadataFieldDataService,
TokenResponseParsingService,
ReloadGuard,
EndUserAgreementGuard,
EndUserAgreementCurrentUserGuard,
EndUserAgreementCookieGuard,
EndUserAgreementService,
// register AuthInterceptor as HttpInterceptor
{

View File

@@ -1,30 +1,27 @@
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';
import { Observable } from 'rxjs/internal/Observable';
import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
import { EndUserAgreementService } from './end-user-agreement.service';
import { tap } from 'rxjs/operators';
import { AuthService } from '../auth/auth.service';
import { returnEndUserAgreementUrlTreeOnFalse } from '../shared/operators';
import { tap } from 'rxjs/operators';
/**
* A guard redirecting users to the end agreement page when they haven't accepted the latest user agreement
* An abstract guard for redirecting users to the user agreement page if a certain condition is met
* That condition is defined by abstract method hasAccepted
*/
@Injectable()
export class EndUserAgreementGuard implements CanActivate {
export abstract class AbstractEndUserAgreementGuard implements CanActivate {
constructor(protected endUserAgreementService: EndUserAgreementService,
protected authService: AuthService,
constructor(protected authService: AuthService,
protected router: Router) {
}
/**
* True when the user has accepted the agreements
* True when the user agreement has been accepted
* The user will be redirected to the End User Agreement page if they haven't accepted it before
* A redirect URL will be provided with the navigation so the component can redirect the user back to the blocked route
* when they're finished accepting the agreement
*/
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> {
return this.endUserAgreementService.hasCurrentUserAcceptedAgreement().pipe(
return this.hasAccepted().pipe(
returnEndUserAgreementUrlTreeOnFalse(this.router),
tap((result) => {
if (result instanceof UrlTree) {
@@ -34,4 +31,11 @@ export class EndUserAgreementGuard implements CanActivate {
})
);
}
/**
* This abstract method determines how the User Agreement has to be accepted before the user is allowed to visit
* the desired route
*/
abstract hasAccepted(): Observable<boolean>;
}

View File

@@ -0,0 +1,28 @@
import { Injectable } from '@angular/core';
import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.guard';
import { Observable } from 'rxjs/internal/Observable';
import { of as observableOf } from 'rxjs';
import { EndUserAgreementService } from './end-user-agreement.service';
import { AuthService } from '../auth/auth.service';
import { Router } from '@angular/router';
/**
* A guard redirecting users to the end agreement page when the user agreement cookie hasn't been accepted
*/
@Injectable()
export class EndUserAgreementCookieGuard extends AbstractEndUserAgreementGuard {
constructor(protected endUserAgreementService: EndUserAgreementService,
protected authService: AuthService,
protected router: Router) {
super(authService, router);
}
/**
* True when the user agreement cookie has been accepted
*/
hasAccepted(): Observable<boolean> {
return observableOf(this.endUserAgreementService.isCookieAccepted());
}
}

View File

@@ -1,11 +1,11 @@
import { EndUserAgreementGuard } from './end-user-agreement.guard';
import { EndUserAgreementCurrentUserGuard } from './end-user-agreement-current-user.guard';
import { EndUserAgreementService } from './end-user-agreement.service';
import { Router, UrlTree } from '@angular/router';
import { of as observableOf } from 'rxjs';
import { AuthService } from '../auth/auth.service';
describe('EndUserAgreementGuard', () => {
let guard: EndUserAgreementGuard;
let guard: EndUserAgreementCurrentUserGuard;
let endUserAgreementService: EndUserAgreementService;
let authService: AuthService;
@@ -21,7 +21,7 @@ describe('EndUserAgreementGuard', () => {
parseUrl: new UrlTree()
});
guard = new EndUserAgreementGuard(endUserAgreementService, authService, router);
guard = new EndUserAgreementCurrentUserGuard(endUserAgreementService, authService, router);
});
describe('canActivate', () => {

View File

@@ -0,0 +1,27 @@
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/internal/Observable';
import { AbstractEndUserAgreementGuard } from './abstract-end-user-agreement.guard';
import { EndUserAgreementService } from './end-user-agreement.service';
import { AuthService } from '../auth/auth.service';
import { Router } from '@angular/router';
/**
* A guard redirecting logged in users to the end agreement page when they haven't accepted the latest user agreement
*/
@Injectable()
export class EndUserAgreementCurrentUserGuard extends AbstractEndUserAgreementGuard {
constructor(protected endUserAgreementService: EndUserAgreementService,
protected authService: AuthService,
protected router: Router) {
super(authService, router);
}
/**
* True when the currently logged in user has accepted the agreements or when the user is not currently authenticated
*/
hasAccepted(): Observable<boolean> {
return this.endUserAgreementService.hasCurrentUserAcceptedAgreement(true);
}
}

View File

@@ -25,26 +25,37 @@ export class EndUserAgreementService {
}
/**
* Whether or not the current user has accepted the End User Agreement
* Whether or not either the cookie was accepted or the current user has accepted the End User Agreement
* @param acceptedWhenAnonymous Whether or not the user agreement should be considered accepted if the user is
* currently not authenticated (anonymous)
*/
hasCurrentUserAcceptedAgreement(): Observable<boolean> {
hasCurrentUserOrCookieAcceptedAgreement(acceptedWhenAnonymous: boolean): Observable<boolean> {
if (this.isCookieAccepted()) {
return observableOf(true);
} else {
return this.authService.isAuthenticated().pipe(
switchMap((authenticated) => {
if (authenticated) {
return this.authService.getAuthenticatedUserFromStore().pipe(
map((user) => hasValue(user) && user.hasMetadata(END_USER_AGREEMENT_METADATA_FIELD) && user.firstMetadata(END_USER_AGREEMENT_METADATA_FIELD).value === 'true')
);
} else {
return observableOf(false);
}
})
);
return this.hasCurrentUserAcceptedAgreement(acceptedWhenAnonymous);
}
}
/**
* Whether or not the current user has accepted the End User Agreement
* @param acceptedWhenAnonymous Whether or not the user agreement should be considered accepted if the user is
* currently not authenticated (anonymous)
*/
hasCurrentUserAcceptedAgreement(acceptedWhenAnonymous: boolean): Observable<boolean> {
return this.authService.isAuthenticated().pipe(
switchMap((authenticated) => {
if (authenticated) {
return this.authService.getAuthenticatedUserFromStore().pipe(
map((user) => hasValue(user) && user.hasMetadata(END_USER_AGREEMENT_METADATA_FIELD) && user.firstMetadata(END_USER_AGREEMENT_METADATA_FIELD).value === 'true')
);
} else {
return observableOf(acceptedWhenAnonymous);
}
})
);
}
/**
* Set the current user's accepted agreement status
* When a user is authenticated, set his/her metadata to the provided value

View File

@@ -45,7 +45,7 @@ export class EndUserAgreementComponent implements OnInit {
* Initialize the "accepted" property of this component by checking if the current user has accepted it before
*/
initAccepted() {
this.endUserAgreementService.hasCurrentUserAcceptedAgreement().subscribe((accepted) => {
this.endUserAgreementService.hasCurrentUserOrCookieAcceptedAgreement(false).subscribe((accepted) => {
this.accepted = accepted;
});
}

View File

@@ -7,7 +7,6 @@ import { ProcessDetailComponent } from './detail/process-detail.component';
import { I18nBreadcrumbResolver } from '../core/breadcrumbs/i18n-breadcrumb.resolver';
import { ProcessBreadcrumbResolver } from './process-breadcrumb.resolver';
import { AuthenticatedGuard } from '../core/auth/authenticated.guard';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
@NgModule({
imports: [
@@ -16,7 +15,7 @@ import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agree
path: '',
resolve: { breadcrumb: I18nBreadcrumbResolver },
data: { breadcrumbKey: 'process.overview' },
canActivate: [AuthenticatedGuard, EndUserAgreementGuard],
canActivate: [AuthenticatedGuard],
children: [
{
path: '',

View File

@@ -4,7 +4,7 @@ import { RegisterEmailComponent } from './register-email/register-email.componen
import { CreateProfileComponent } from './create-profile/create-profile.component';
import { ItemPageResolver } from '../+item-page/item-page.resolver';
import { RegistrationResolver } from '../register-email-form/registration.resolver';
import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agreement.guard';
import { EndUserAgreementCookieGuard } from '../core/end-user-agreement/end-user-agreement-cookie.guard';
@NgModule({
imports: [
@@ -18,7 +18,7 @@ import { EndUserAgreementGuard } from '../core/end-user-agreement/end-user-agree
path: ':token',
component: CreateProfileComponent,
resolve: {registration: RegistrationResolver},
canActivate: [EndUserAgreementGuard]
canActivate: [EndUserAgreementCookieGuard]
}
])
],