UNPKG

jangular-cli

Version:

A powerful CLI tool for rapidly bootstrapping Angular 17 & Spring Boot (Java 21) applications with integrated security, services, and enterprise-ready best practices.

30 lines (26 loc) 748 B
import { Injectable } from '@angular/core'; import { Router } from '@angular/router'; import { Observable, map } from 'rxjs'; import { RoleName } from '../models/role.model'; import { UserService } from '../services/user/user.service'; @Injectable({ providedIn: 'root' }) export class AdminGuard { constructor( private userService: UserService, private router: Router ) { } canActivate(): Observable<boolean> { return this.userService.getCurrentUser().pipe( map(user => { const isAdmin = Array.isArray(user.roles) && user.roles.includes(RoleName.ROLE_ADMIN); if (!isAdmin) { this.router.navigate(['/unauthorized']); return false; } return true; }) ); } }