Cómo: Autoeliminación de cuenta deshabilitada¶
Objetivo: documentar la política de impedir que los usuarios eliminen su propia cuenta y cómo revertirla si fuese necesario.
Estado actual (en este proyecto)¶
-
La ruta
DELETE settings/profile
está deshabilitada enroutes/settings.php
:// Route disabled: users cannot delete their own account // Route::delete('settings/profile', [ProfileController::class, 'destroy']) // ->middleware('can:settings.profile.delete') // ->name('profile.destroy');
-
La acción
destroy()
del controlador está deshabilitada enapp/Http/Controllers/Settings/ProfileController.php
:// Account deletion disabled // public function destroy(ProfileDeleteRequest $request): RedirectResponse // { // abort(404); // }
-
El permiso
settings.profile.delete
está comentado enconfig/permissions/settings.php
:// 'settings.profile.delete', // disabled: users cannot delete their own account // 'settings.profile.delete' => 'Eliminar cuenta', // disabled
-
En la UI (Inertia/React), el componente de eliminación está comentado en
resources/js/pages/settings/profile.tsx
:// import DeleteUser from '@/components/delete-user'; // disabled: account deletion is not allowed // ... // <DeleteUser />
Re-habilitar la autoeliminación (no recomendada)¶
-
Permisos
- Destapar
settings.profile.delete
enconfig/permissions/settings.php
(enpermissions
y endescriptions
). - Sincronizar:
php artisan config:clear php artisan db:seed --class=Database\\Seeders\\PermissionsSeeder
- Destapar
-
Backend
- Destapar la ruta
Route::delete('settings/profile', ...)
enroutes/settings.php
. - Destapar e implementar
destroy(ProfileDeleteRequest $request)
enProfileController
.- El request existe:
app/Http/Requests/Settings/ProfileDeleteRequest.php
. - Implementación sugerida: validar contraseña, cerrar sesión y eliminar usuario.
- El request existe:
- Destapar la ruta
-
Frontend
- Volver a importar y renderizar
<DeleteUser />
enresources/js/pages/settings/profile.tsx
.
- Volver a importar y renderizar
-
Seguridad
- Considera periodo de gracia (soft-delete + reactivación), exportación de datos, verificación por correo y auditoría.
Estado recomendado¶
- Mantener deshabilitada la autoeliminación en este boilerplate.
- Proveer un proceso administrado (mesa de ayuda o admins) para bajas de cuentas.