[UDT-005/006] Crear ProtectedRoute reutilizable con rol-check en frontend #5
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Origen: UDT-003 (PR #4) — detectado al proteger
/usuarios/nuevopor rol admin.Contexto actual
src/web/src/features/users/pages/CreateUserPage.tsxel guard de rol se hace inline: early return +navigate('/')siuser.rol !== 'admin'.Qué hay que hacer cuando se aterrice RBAC (UDT-005/006)
src/web/src/components/auth/ProtectedRoute.tsxque acepte una lista de roles y/o permisos requeridos (requiredRoles?: string[],requiredPermissions?: string[]).router.tsxcomo wrapper de las rutas protegidas.CreateUserPage.tsxpor el nuevoProtectedRoute.usePermission/CanPerformque se definirá en UDT-006.Acceptance criteria
ProtectedRouterenderiza children sólo si el usuario cumple roles/permisos; si no, redirect a/o 403.CreateUserPagedeja de tener guard inline y usaProtectedRoute.ProtectedRoute.Archivo a consultar al retomar: engram
sdd/udt-003-registro-usuarios/archive-report(deuda documentada).Reasignado formalmente a UDT-006 (Middleware de Autorización). En UDT-005 las rutas
/admin/permisosusan elProtectedRouteactual (auth-only). El componente granular conrequiredPermissionsrequiere que el enforcement backend exista, cosa que recién llega con UDT-006.