-- ============================================================================ -- TABLERO CDC — ETAPA 2 — HORAS DEL EQUIPO -- Script aditivo y seguro. -- -- Reutiliza la vista public.tablero_cdc_time_combined creada en la Etapa 1. -- Solo agrega un RPC de lectura mínima para que el módulo pueda mostrar también -- personas activas que todavía no han registrado horas en el periodo seleccionado. -- NO modifica proyectos, horas, histórico, métricas, tarifarios ni listas. -- ============================================================================ begin; create or replace function public.tablero_cdc_get_team_hours_roster() returns table ( email text, full_name text ) language plpgsql stable security definer set search_path = public as $$ begin if not public.tablero_cdc_current_user_is_allowed() then raise exception 'No autorizado'; end if; return query select lower(trim(u.email)) as email, coalesce(nullif(trim(u.full_name), ''), lower(trim(u.email))) as full_name from public.tablero_cdc_allowed_users u where u.is_active = true order by coalesce(nullif(trim(u.full_name), ''), lower(trim(u.email))); end; $$; revoke all on function public.tablero_cdc_get_team_hours_roster() from public; grant execute on function public.tablero_cdc_get_team_hours_roster() to authenticated; commit; -- Verificación opcional desde una sesión autenticada de la app: -- select * from public.tablero_cdc_get_team_hours_roster();