db/schema/0101_acting_usr.sql
Orion Kindel 56957d380a
Some checks failed
migrate-devel / migrate-devel (push) Failing after 7s
migrate-stage / migrate-stage (push) Failing after 8s
feat: permissions
2023-07-14 21:13:33 -04:00

35 lines
649 B
PL/PgSQL

create function public.set_acting_usr(uid text)
returns void
language plpgsql
volatile
as $$
begin
set session "dnim.usr_uid" = uid;
end;
$$;
create function public.get_acting_usr()
returns public.usr
language plpgsql
volatile
as $$
declare
uid text;
acting_usr public.usr;
begin
if nullif(current_setting('dnim.usr_uid', true), '') is null then
select u.*
from public.usr u
where u.tag = public.usr_tag_of_string('root')
into acting_usr;
else
select u.*
from public.usr u
where u.uid = current_setting('dnim.usr_uid', true) :: uuid
into acting_usr;
end if;
return acting_usr;
end;
$$;