Settings
Generada 2026-08-13. Fuente: exploración de código de controlgmg-v2 + observación manual del navegador (QA).
Backend
Sección titulada «Backend»/settings es en gran parte una SPA propia del paquete Laravel Spark Aurelius (vendor/laravel/spark-aurelius), no del código de la app. Sus rutas backend viven en vendor/laravel/spark-aurelius/src/Http/routes.php, registradas automáticamente por SparkServiceProvider::defineRoutes() — no en routes/web.php de la app. Endpoints relevantes bajo /settings/* (namespace Laravel\Spark\Http\Controllers, middleware web, sin permission:/role:):
GET /settings/teams/currentGET /settings/teams/{team} (Settings\Teams\DashboardController@show)PUT /settings/teams/{team}/namePOST /settings/teams/{team}/photoGET /settings/teams/{team}/invitationsPOST /settings/teams/{team}/invitationsPUT /settings/teams/{team}/members/{team_member}DELETE /settings/teams/{team}/members/{team_member}GET /settings/teams (TeamController@all)POST /settings/teams (Settings\Teams\TeamController@store, middleware is_owner)GET /settings/teams/{team}/switch (definida en app/routes/web.php:490, TeamController@switchCurrentTeam)GET /settings/invitations/pendingPOST /settings/invitations/{invitation}/accept|rejectAdemás, la app SÍ personaliza algunas subvistas de Settings vía componentes propios registrados en resources/js/app.js:
gmg-settings-notifications→resources/js/components/Settings/Notifications/Notifications.vuegmg-settings-business-rules→resources/js/components/Settings/BusinessRules/BusinessRules.vuegmg-password-expired-page→resources/js/components/Settings/PasswordExpiration/PasswordExpiratedForm.vue(página fuera de/settings, se activa cuando el password expira, ver middlewarepassword_expiredmencionado en CLAUDE.md)
Ver tabla arriba — todas bajo /settings/*, package Spark Aurelius, no archivo propio de la app.
Frontend (Vue 2)
Sección titulada «Frontend (Vue 2)»- El árbol de navegación visto en QA (Perfil / Oficinas / Seguridad / API) es la UI estándar de Spark Aurelius para gestión de cuenta y equipo (perfil de usuario, oficinas = “teams” en el vocabulario de este proyecto, seguridad = password/2FA, API = tokens Sanctum).
- No aparece en
resources/js/routes.jsde la app (por eso el título de pestaña cae al genérico “QA-GMG” en vez de un nombre de ruta específico) — Spark monta su propio router/vistas. - Personalizaciones puntuales de la app: Notifications.vue y BusinessRules.vue (arriba).
Permisos (Laratrust)
Sección titulada «Permisos (Laratrust)»Ninguna constante de Laratrust específica encontrada — el acceso a /settings es a nivel de “usuario autenticado con team”, gestionado por Spark (algunas acciones de equipo usan el middleware is_owner de la app, app/Http/Middleware/IsOwner.php, ej. crear un nuevo team).
Selectores usados por el tester (riesgo de fragilidad)
Sección titulada «Selectores usados por el tester (riesgo de fragilidad)»No hay specs de Playwright para este módulo todavía — solo Remolques los tiene por ahora. Al ser en buena parte UI de un paquete de terceros (Spark Aurelius), los selectores podrían ser más estables entre releases de la app (el paquete cambia con menos frecuencia), pero también menos “propios” — conviene verificar contra QA real antes de asumir estructura.
Datos observados en QA (2026-08-12)
Sección titulada «Datos observados en QA (2026-08-12)»Página de perfil de usuario: foto de perfil con botón “Actualizar Foto”, formulario “Información de Contacto” (Nombre, Correo Electrónico, Número de Teléfono) con botón “Actualizar”. Sidebar de configuración con 4 pestañas: Perfil (activa), Oficinas, Seguridad, API.