45 lines
1.4 KiB
PL/PgSQL
45 lines
1.4 KiB
PL/PgSQL
-- ============================================================================
|
|
-- 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();
|