User current paths (user/edit & user/current/*)
Proporciona rutas de acción de usuario neutrales respecto al UID utilizando 'current' como marcador de posición que se resuelve automáticamente al ID del usuario conectado.
user_current_paths
Instalar
composer require 'drupal/user_current_paths:^2.0'
Overview
El módulo User current paths resuelve un problema común de usabilidad en Drupal: crear enlaces agnósticos al usuario que funcionen para cualquier usuario conectado sin conocer su ID de usuario específico. En lugar de codificar rutas como /user/123/edit, puedes usar /user/current/edit que redirige automáticamente a la ruta específica del usuario correspondiente.
Esto es particularmente útil para crear enlaces de menú, accesos directos o elementos de navegación que deben apuntar al perfil del usuario actual, formulario de edición o cualquier otra página relacionada con el usuario. El módulo también proporciona un acceso directo conveniente /user/edit que redirige directamente al formulario de edición de cuenta del usuario actual.
Además, el módulo añade un enlace 'Editar mi cuenta' al menú de cuenta de usuario, facilitando a los usuarios conectados el acceso a la configuración de su cuenta directamente desde la navegación.
Features
- Proporciona la ruta /user/current que redirige a la página de perfil del usuario actual (/user/{uid})
- Proporciona rutas comodín /user/current/{action} que redirigen a cualquier página de acción del usuario (ej., /user/current/edit → /user/{uid}/edit)
- Proporciona la ruta de acceso directo /user/edit que redirige al formulario de edición de cuenta del usuario actual
- Añade el enlace de menú 'Editar mi cuenta' al menú de cuenta de usuario para usuarios conectados
- Valida las rutas antes de redirigir, devolviendo 404 para destinos inválidos
- Funciona con cualquier ruta relacionada con usuarios, incluyendo las proporcionadas por módulos contribuidos (ej., /user/current/shortcuts)
Use Cases
Crear accesos directos en el menú de usuario
Al construir un sitio con un panel de usuario o área de cuenta, puedes crear enlaces de menú usando rutas /user/current sin necesidad de conocer los IDs de usuario. Esto permite una navegación genérica que funciona para todos los usuarios.
Enlaces codificados en código personalizado
Al desarrollar módulos o temas personalizados, usa rutas /user/current/* en los enlaces en lugar de generar dinámicamente URLs específicas de usuario. Esto simplifica el código y reduce la necesidad de cargar el contexto del usuario.
Plantillas de correo electrónico con enlaces de cuenta
Incluye enlaces /user/current/edit o /user/edit en las plantillas de correo electrónico. Cuando los usuarios hagan clic en estos enlaces después de iniciar sesión, serán redirigidos a sus propias páginas de cuenta.
Integración con accesos directos
Los usuarios pueden añadir rutas /user/current/* a sus accesos directos para un acceso rápido a sus propias páginas de cuenta sin necesidad de conocer su ID de usuario.
Integración con sistemas externos
Al integrar con sistemas externos que necesitan enlazar a páginas específicas de usuario en Drupal, proporciona URLs /user/current/* que funcionarán para cualquier usuario autenticado.
Tips
- Usa /user/current/edit en lugar de construir URLs dinámicas de edición de usuario en tu código
- El módulo funciona con cualquier módulo contribuido que añada subpáginas de usuario (ej., /user/current/orders para sitios de comercio)
- La ruta /user/edit es un acceso directo conveniente cuando solo necesitas enlazar al formulario de edición
- Todas las redirecciones mantienen un control de acceso adecuado: los usuarios verán acceso denegado si no tienen permiso para ver el destino
Technical Details
Troubleshooting 3
El módulo valida que la ruta de destino existe. Si obtienes un 404, la ruta subyacente /user/{uid}/{action} no existe. Verifica que la acción que intentas acceder sea una ruta de usuario válida.
Todas las rutas proporcionadas por este módulo requieren que el usuario esté conectado. Los usuarios anónimos no pueden usar estas rutas de redirección.
El enlace se añade al menú 'account'. Asegúrate de que este menú se esté mostrando en tu Theme y de que hayas iniciado sesión.
Security Notes 3
- El módulo usa el validador de rutas de Drupal para asegurar que los destinos de redirección sean rutas internas válidas
- El control de acceso se aplica en el destino: los usuarios no pueden acceder a páginas para las que no tienen permiso
- Las redirecciones se manejan de forma segura como si el usuario hubiera ingresado la URL manualmente, con todas las verificaciones de seguridad aplicadas