Skip to content

Commit 8f021e7

Browse files
fix[frontend](federation/settings_nav): added route guard to avoid incorrect navigation on federation mode
1 parent 742e588 commit 8f021e7

2 files changed

Lines changed: 24 additions & 1 deletion

File tree

frontend/src/app/app-routing.module.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {NgModule} from '@angular/core';
22
import {RouterModule, Routes} from '@angular/router';
33
import {UserRouteAccessService} from './core/auth/user-route-access-service';
4+
import {FederationDisabledGuard} from './federation/guards/federation-disabled.guard';
45
import {
56
FederationEmailConfigPageComponent
67
} from './federation/pages/email-config/federation-email-config.page.component';
@@ -74,7 +75,8 @@ const routes: Routes = [
7475
{
7576
path: 'app-management',
7677
loadChildren: './app-management/app-management.module#AppManagementModule',
77-
canActivate: [UserRouteAccessService],
78+
canActivate: [UserRouteAccessService, FederationDisabledGuard],
79+
canActivateChild: [FederationDisabledGuard],
7880
data: {authorities: [USER_ROLE, ADMIN_ROLE]}
7981
},
8082
{
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import {Injectable} from '@angular/core';
2+
import {CanActivate, CanActivateChild, Router} from '@angular/router';
3+
import {FederationModeService} from '../services/federation-mode.service';
4+
5+
@Injectable({providedIn: 'root'})
6+
export class FederationDisabledGuard implements CanActivate, CanActivateChild {
7+
constructor(private federationModeService: FederationModeService,
8+
private router: Router) {}
9+
10+
canActivate(): boolean {
11+
if (this.federationModeService.isActive) {
12+
this.router.navigate(['/federation/welcome']);
13+
return false;
14+
}
15+
return true;
16+
}
17+
18+
canActivateChild(): boolean {
19+
return this.canActivate();
20+
}
21+
}

0 commit comments

Comments
 (0)