55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
# Permiso para crear proyectos — Tablero CDC
|
|
|
|
## Qué cambia
|
|
|
|
Se agrega el permiso `can_create_projects` en `public.tablero_cdc_allowed_users`.
|
|
|
|
Inicialmente queda activo únicamente para:
|
|
|
|
- Bonnie Oliva — `boliva@gomezleemarketing.com`
|
|
- Alicia Thaía Reyes — `areyes@gomezleemarketing.com`
|
|
- Isaac Daniel Aracena Toribio — `iaracena@gomezleemarketing.com`
|
|
- José Leopoldo Gomez — `jgomez@gomezleemarketing.com`
|
|
- Máximo Gomez — `mgomez@gomezleemarketing.com`
|
|
|
|
Para los demás usuarios activos, `can_create_projects=false`.
|
|
|
|
## Comportamiento
|
|
|
|
- Con permiso: aparece **+ Nuevo** y se puede crear un proyecto manualmente.
|
|
- Sin permiso: **+ Nuevo** no aparece.
|
|
- La protección no depende solo de la interfaz: una política RLS restrictiva exige el permiso para `INSERT` autenticados sobre `tablero_cdc_projects`.
|
|
- No se modifica la edición de proyectos existentes.
|
|
- No se modifica Tiempo, Horas del equipo, Tarifario, Listas, métricas, CDC Brief ni la sincronización con n8n/Google Sheets.
|
|
- El flujo de aprobación de CDC Brief sigue usando su RPC existente `SECURITY DEFINER`; este cambio está enfocado en la creación manual del Tablero.
|
|
|
|
## Instalación
|
|
|
|
1. Ejecutar `supabase_tablero_cdc_create_projects_permission.sql` en Supabase SQL Editor.
|
|
2. Confirmar que la consulta final muestre `can_create_projects=true` únicamente para los usuarios deseados.
|
|
3. Probar el `dist` actualizado.
|
|
4. Con una cuenta sin permiso, confirmar que **+ Nuevo** no aparece.
|
|
5. Con una cuenta con permiso, confirmar que **+ Nuevo** aparece y permite crear normalmente.
|
|
|
|
## Administración futura
|
|
|
|
Dar acceso:
|
|
|
|
```sql
|
|
update public.tablero_cdc_allowed_users
|
|
set can_create_projects = true,
|
|
updated_at = now()
|
|
where lower(email) = lower('correo@gomezleemarketing.com');
|
|
```
|
|
|
|
Quitar acceso:
|
|
|
|
```sql
|
|
update public.tablero_cdc_allowed_users
|
|
set can_create_projects = false,
|
|
updated_at = now()
|
|
where lower(email) = lower('correo@gomezleemarketing.com');
|
|
```
|
|
|
|
El cambio se refleja al volver a enfocar/recargar la aplicación.
|