File: /var/www/web.enelar.com.co/src/app/middleware/auth.guard.ts
import { Injectable } from '@angular/core';
import {
CanActivate,
Router,
ActivatedRouteSnapshot,
RouterStateSnapshot,
} from '@angular/router';
import { AuthService } from '../modules/management/infrastructure/services/auth/auth.service';
@Injectable({
providedIn: 'root',
})
export class AuthGuard implements CanActivate {
constructor(private authService: AuthService, private router: Router) {}
canActivate(
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean {
const isLoggedIn = this.authService.isLoggedIn();
const isLoginRoute = state.url === '/auth/login';
if (isLoggedIn && isLoginRoute) {
this.router.navigate(['/dashboard']);
return false;
}
if (!isLoggedIn && !isLoginRoute) {
this.router.navigate(['/auth/login']);
return false;
}
return true;
}
}