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/profileestá 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.deleteestá 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.deleteenconfig/permissions/settings.php(enpermissionsy 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.