sum
This commit is contained in:
37
supabase/migrations/001_profiles.sql
Normal file
37
supabase/migrations/001_profiles.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
-- Profiles table (extends Supabase auth.users)
|
||||
create table profiles (
|
||||
id uuid primary key references auth.users(id) on delete cascade,
|
||||
display_name text,
|
||||
locale text not null default 'en',
|
||||
currency text not null default 'EUR',
|
||||
created_at timestamptz not null default now(),
|
||||
updated_at timestamptz not null default now()
|
||||
);
|
||||
|
||||
alter table profiles enable row level security;
|
||||
|
||||
create policy "Users can read own profile"
|
||||
on profiles for select
|
||||
using (id = auth.uid());
|
||||
|
||||
create policy "Users can update own profile"
|
||||
on profiles for update
|
||||
using (id = auth.uid())
|
||||
with check (id = auth.uid());
|
||||
|
||||
create policy "Users can insert own profile"
|
||||
on profiles for insert
|
||||
with check (id = auth.uid());
|
||||
|
||||
-- Auto-create profile on user signup
|
||||
create or replace function handle_new_user()
|
||||
returns trigger as $$
|
||||
begin
|
||||
insert into profiles (id) values (new.id);
|
||||
return new;
|
||||
end;
|
||||
$$ language plpgsql security definer;
|
||||
|
||||
create trigger on_auth_user_created
|
||||
after insert on auth.users
|
||||
for each row execute function handle_new_user();
|
||||
Reference in New Issue
Block a user