Modularización de GKACHELE SaaS
This commit is contained in:
100
memoria/GESTION_USUARIOS.md
Normal file
100
memoria/GESTION_USUARIOS.md
Normal file
@@ -0,0 +1,100 @@
|
||||
# 👥 Gestión de Usuarios - GKACHELE™
|
||||
|
||||
**© 2025 GKACHELE™. Todos los derechos reservados.**
|
||||
|
||||
## 🎯 Objetivo
|
||||
|
||||
Sistema completo para ver, gestionar y eliminar usuarios registrados desde el panel de administración.
|
||||
|
||||
## 📍 Ubicación
|
||||
|
||||
**Ruta:** `/admin` (solo usuarios con rol `administrator`)
|
||||
|
||||
## 🔍 Funcionalidades
|
||||
|
||||
### 1. Ver Todos los Usuarios
|
||||
|
||||
El panel muestra:
|
||||
- ID del usuario
|
||||
- Email
|
||||
- Plan (base, premium, etc.)
|
||||
- Rubro
|
||||
- Fecha de registro
|
||||
- Número de sitios creados
|
||||
- Sitios publicados
|
||||
- Solicitudes enviadas
|
||||
|
||||
### 2. Eliminar Usuarios
|
||||
|
||||
**Ruta:** `POST /admin/users/delete/<user_id>`
|
||||
|
||||
**Protección:**
|
||||
- Solo usuarios con rol `administrator`
|
||||
- No se puede eliminar al usuario ID=1 (admin principal)
|
||||
|
||||
**Proceso de eliminación:**
|
||||
1. Elimina widgets del usuario
|
||||
2. Elimina menús del usuario
|
||||
3. Elimina media del usuario
|
||||
4. Elimina contenido del usuario
|
||||
5. Elimina configuraciones del usuario
|
||||
6. Elimina solicitudes del usuario
|
||||
7. Elimina sitios del usuario
|
||||
8. Elimina el usuario
|
||||
|
||||
**Todo en una transacción** - Si falla algo, se revierte todo.
|
||||
|
||||
## 🛡️ Seguridad
|
||||
|
||||
- Verificación de rol desde la base de datos (no hardcodeado)
|
||||
- Confirmación antes de eliminar
|
||||
- Transacciones para integridad de datos
|
||||
- Protección del admin principal
|
||||
|
||||
## 📊 Consultas Útiles
|
||||
|
||||
### Ver usuarios con estadísticas:
|
||||
```sql
|
||||
SELECT
|
||||
u.id,
|
||||
u.email,
|
||||
u.plan,
|
||||
u.rubro,
|
||||
u.role,
|
||||
u.status,
|
||||
u.created_at,
|
||||
COUNT(DISTINCT s.id) as num_sitios,
|
||||
COUNT(DISTINCT CASE WHEN s.status = 'published' THEN s.id END) as sitios_publicados,
|
||||
COUNT(DISTINCT r.id) as num_solicitudes
|
||||
FROM users u
|
||||
LEFT JOIN sites s ON u.id = s.user_id
|
||||
LEFT JOIN requests r ON u.id = r.user_id
|
||||
GROUP BY u.id
|
||||
ORDER BY u.id DESC;
|
||||
```
|
||||
|
||||
### Filtrar usuarios inactivos:
|
||||
```sql
|
||||
SELECT * FROM users WHERE status != 'active';
|
||||
```
|
||||
|
||||
### Ver usuarios sin sitios:
|
||||
```sql
|
||||
SELECT u.* FROM users u
|
||||
LEFT JOIN sites s ON u.id = s.user_id
|
||||
WHERE s.id IS NULL;
|
||||
```
|
||||
|
||||
## 🚀 Próximas Mejoras
|
||||
|
||||
- [ ] Filtros por rol, plan, estado
|
||||
- [ ] Búsqueda de usuarios
|
||||
- [ ] Editar usuario (cambiar rol, plan, estado)
|
||||
- [ ] Suspender usuario (sin eliminar)
|
||||
- [ ] Exportar lista de usuarios
|
||||
- [ ] Estadísticas de usuarios
|
||||
|
||||
---
|
||||
|
||||
**Última actualización:** 14 Enero 2025
|
||||
**Hash:** `gkachele-gestion-usuarios-20250114`
|
||||
Reference in New Issue
Block a user