From a06337d9b55323e25adc47a9e800031ffc66c549 Mon Sep 17 00:00:00 2001 From: supphakitd <67319010028@technictrang.ac.th> Date: Wed, 3 Dec 2025 06:56:28 +0700 Subject: [PATCH] added role.guard.ts.ts again Signed-off-by: supphakitd <67319010028@technictrang.ac.th> --- .../src/app/services/role.guard.ts.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 ng-ttc-frontend/src/app/services/role.guard.ts.ts diff --git a/ng-ttc-frontend/src/app/services/role.guard.ts.ts b/ng-ttc-frontend/src/app/services/role.guard.ts.ts new file mode 100644 index 0000000..21b43fa --- /dev/null +++ b/ng-ttc-frontend/src/app/services/role.guard.ts.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import { ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; + + +@Injectable({ + providedIn: 'root', +}) +export class RoleGuard { + constructor(private router: Router) { } + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + const denyRole = route.data?.['denyRole']; + const usrrol = localStorage.getItem('usrrol'); + + if (denyRole && usrrol === denyRole) { + // blocked: navigate away (adjust target as needed) + this.router.navigate(['/']); + return false; + } + + return true; + } + + canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + return this.canActivate(route, state); + } +}