31 lines
841 B
PL/PgSQL
31 lines
841 B
PL/PgSQL
-- Ensure uuid-ossp extension is enabled
|
|
create extension if not exists "uuid-ossp" schema extensions;
|
|
|
|
-- Function to set up initial admin
|
|
create or replace function public.setup_initial_admin()
|
|
returns void
|
|
language plpgsql
|
|
security definer
|
|
set search_path = public, extensions
|
|
as $$
|
|
begin
|
|
-- Check if admin already exists
|
|
if exists (
|
|
select 1 from public.profiles
|
|
where user_type = 'admin'
|
|
) then
|
|
return;
|
|
end if;
|
|
|
|
-- Grant necessary permissions
|
|
grant all on all tables in schema public to authenticated;
|
|
grant all on all sequences in schema public to authenticated;
|
|
grant all on all functions in schema public to authenticated;
|
|
end;
|
|
$$;
|
|
|
|
-- Execute the function
|
|
select public.setup_initial_admin();
|
|
|
|
-- Drop the function after execution
|
|
drop function public.setup_initial_admin(); |