RBAC seems to be working
This commit is contained in:
65
supabase/migrations/20250719000003_seed_admin_user.sql
Normal file
65
supabase/migrations/20250719000003_seed_admin_user.sql
Normal file
@@ -0,0 +1,65 @@
|
||||
-- Seed Admin User
|
||||
-- Creates the initial admin user with specified credentials
|
||||
|
||||
-- Function to create admin user
|
||||
CREATE OR REPLACE FUNCTION public.create_admin_user()
|
||||
RETURNS VOID AS $$
|
||||
DECLARE
|
||||
admin_user_id UUID;
|
||||
admin_role_id UUID;
|
||||
BEGIN
|
||||
-- Get admin role ID
|
||||
SELECT id INTO admin_role_id FROM public.roles WHERE name = 'admin';
|
||||
|
||||
-- Check if admin user already exists
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM auth.users WHERE email = 's.alireza.v@gmail.com'
|
||||
) THEN
|
||||
-- Insert user into auth.users (this simulates user registration)
|
||||
-- Note: In production, this would be done through Supabase Auth API
|
||||
INSERT INTO auth.users (
|
||||
instance_id,
|
||||
id,
|
||||
aud,
|
||||
role,
|
||||
email,
|
||||
encrypted_password,
|
||||
email_confirmed_at,
|
||||
created_at,
|
||||
updated_at,
|
||||
confirmation_token,
|
||||
email_change,
|
||||
email_change_token_new,
|
||||
recovery_token
|
||||
) VALUES (
|
||||
'00000000-0000-0000-0000-000000000000',
|
||||
uuid_generate_v4(),
|
||||
'authenticated',
|
||||
'authenticated',
|
||||
's.alireza.v@gmail.com',
|
||||
crypt('2517392', gen_salt('bf')), -- Hash the password
|
||||
NOW(),
|
||||
NOW(),
|
||||
NOW(),
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
''
|
||||
) RETURNING id INTO admin_user_id;
|
||||
|
||||
-- Insert user profile
|
||||
INSERT INTO public.user_profiles (id, email, role_id)
|
||||
VALUES (admin_user_id, 's.alireza.v@gmail.com', admin_role_id);
|
||||
|
||||
RAISE NOTICE 'Admin user created successfully with email: s.alireza.v@gmail.com';
|
||||
ELSE
|
||||
RAISE NOTICE 'Admin user already exists';
|
||||
END IF;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql;
|
||||
|
||||
-- Execute the function to create admin user
|
||||
SELECT public.create_admin_user();
|
||||
|
||||
-- Drop the function as it's no longer needed
|
||||
DROP FUNCTION public.create_admin_user();
|
||||
Reference in New Issue
Block a user