This commit is contained in:
luis cespedes 2025-05-22 09:52:40 -04:00
parent 04b7840341
commit 89e97a3634
7 changed files with 105 additions and 118 deletions

View File

@ -9,10 +9,7 @@ import { DirectAuthService } from '../services/direct-auth.service';
* El parámetro route.data['requireAll'] determina si se requieren todos los roles/grupos o solo alguno
* Si no cumple con los requisitos, redirige a la página de acceso denegado
*/
export const accessGuard: CanActivateFn = (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean | UrlTree => {
export const accessGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree => {
const authService = inject(DirectAuthService);
const router = inject(Router);

View File

@ -7,10 +7,7 @@ import { DirectAuthService } from '../services/direct-auth.service';
* Guard que verifica si el usuario es administrador
* Si no es administrador, redirige a la página de acceso denegado
*/
export const adminGuard: CanActivateFn = (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean | UrlTree => {
export const adminGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree => {
const authService = inject(DirectAuthService);
const router = inject(Router);

View File

@ -7,10 +7,7 @@ import { DirectAuthService } from '../services/direct-auth.service';
* Guard que verifica si el usuario está autenticado
* Si el usuario no está autenticado, redirige al login con la URL de retorno
*/
export const authGuard: CanActivateFn = (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean | UrlTree => {
export const authGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree => {
const authService = inject(DirectAuthService);
const router = inject(Router);

View File

@ -8,10 +8,7 @@ import { DirectAuthService } from '../services/direct-auth.service';
* Espera un array de grupos en route.data['groups']
* Si no pertenece a los grupos necesarios, redirige a la página de acceso denegado
*/
export const groupGuard: CanActivateFn = (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean | UrlTree => {
export const groupGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree => {
const authService = inject(DirectAuthService);
const router = inject(Router);

View File

@ -8,10 +8,7 @@ import { DirectAuthService } from '../services/direct-auth.service';
* Espera un array de roles en route.data['roles']
* Si no tiene los roles necesarios, redirige a la página de acceso denegado
*/
export const roleGuard: CanActivateFn = (
route: ActivatedRouteSnapshot,
state: RouterStateSnapshot
): boolean | UrlTree => {
export const roleGuard: CanActivateFn = (route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree => {
const authService = inject(DirectAuthService);
const router = inject(Router);

View File

@ -21,6 +21,6 @@ export const environment = {
// Intervalo de log en milisegundos (1 segundo)
logInterval: 2000,
// Habilitar logs de inactividad
enableActivityLogs: true
enableActivityLogs: false
}
};

View File

@ -735,7 +735,9 @@ Alternativamente, puedes crear un mapper de tipo "User Attribute" si prefieres a
![configuracion maper](https://i.ibb.co/TqWHYYjX/imagen.png)
¿Qué logramos con esto? Fácil: que en el access token aparezcan los grupos a los que pertenece el usuario, tal cual los configuramos en LDAP. Esto puede ayudar para crear políticas de acceso a páginas o rutas protegidas para algún grupo en específico más adelante. ![ejemplo json acces token ](https://i.ibb.co/jPrR0XH3/imagen.png)
¿Qué logramos con esto? Fácil: que en el access token aparezcan los grupos a los que pertenece el usuario, tal cual los configuramos en LDAP. Esto puede ayudar para crear políticas de acceso a páginas o rutas protegidas para algún grupo en específico más adelante.
![ejemplo json acces token ](https://i.ibb.co/jPrR0XH3/imagen.png)
## 11. Arquitectura del sistema