ng-ttc-frontend: sep userrole, added roleGuard
Some checks failed
Build Docker Image / Restart Docker Compose (push) Has been cancelled
Build Docker Image / Build Docker Image (push) Has been cancelled

Signed-off-by: supphakitd <67319010028@technictrang.ac.th>
This commit is contained in:
2025-12-03 06:54:07 +07:00
parent 278bfe80ec
commit 60be3f7890
8 changed files with 104 additions and 272 deletions

View File

@@ -7,6 +7,7 @@ import { BudgetAproval } from '../../component/budget-aproval/budget-aproval';
import { MainLandingComponent } from '../../component/main-landing/main-landing.component';
import { MainProjectContent } from '../../content/main-project-content/main-project-content';
import { BudgetAprovalContent } from '../../content/budget-aproval-content/budget-aproval-content';
import { RoleGuard } from '../../services/role.guard.ts';
// import { MainReportComponent } from '../../component/main-report/main-report.component';
@@ -15,26 +16,28 @@ const routes: Routes = [
{ path: 'landing', component: MainLandingComponent },
{ path: 'dashboard', component: MainDashboardContentComponent },
{ path: 'report', component: MainReportComponent },
{ path: 'manager', component: MainManagerContentComponent },
{ path: 'project', component: MainProjectContent },
{ path: 'project/:mode', component: MainProjectContent },
// { path: 'budget/approve/:seq', component: BudgetAprovalContent},
{
{
path: 'project',
canActivate: [RoleGuard],
data: { denyRole: 'D' },
component: MainProjectContent
},
{
path: 'project/:mode',
canActivate: [RoleGuard],
data: { denyRole: 'D' },
component: MainProjectContent
},
//manager route blocked for users with role "D" via RoleGuard
{
path: 'manager',
canActivate: [RoleGuard],
data: { denyRole: 'U' },
children: [
{ path: '', component: MainManagerContentComponent }, // รายการโครงการ
{ path: 'aproval', component: BudgetAprovalContent }, // จัดการงบประมาณ
{ path: 'aproval', component: BudgetAprovalContent }, // จัดการงบประมาณ
]
},
// children: [
// {
// path: 'dashboard',
// // loadChildren: () => import('./controls/profile-control/profile-control.module').then(m => m.ProfileControlModule)
// },
// { path: 'report', component: MainReportComponent },
// { path: '', redirectTo: 'profile', pathMatch: 'full' }
// ]
{ path: '', redirectTo: 'landing', pathMatch: 'full' },
{ path: '**', redirectTo: 'landing' }
];