fix(auth): corregir setup_first_admin — psql vars no funcionan en DO $$
Reescribir con CTE INSERT...RETURNING para encadenar auth.users + user_roles en una sola sentencia SQL plana donde :variable sí funciona. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,21 +6,15 @@
|
|||||||
-- -v email='admin@ejemplo.com' -v password='CAMBIAR' \
|
-- -v email='admin@ejemplo.com' -v password='CAMBIAR' \
|
||||||
-- < scripts/setup_first_admin.sql
|
-- < scripts/setup_first_admin.sql
|
||||||
--
|
--
|
||||||
|
-- NOTA: las variables psql solo funcionan en SQL plano, no en DO $$.
|
||||||
|
-- Este script usa un CTE INSERT...RETURNING para encadenar ambos inserts.
|
||||||
|
--
|
||||||
-- CAMBIAR CONTRASEÑA LUEGO DEL PRIMER LOGIN:
|
-- CAMBIAR CONTRASEÑA LUEGO DEL PRIMER LOGIN:
|
||||||
-- El usuario puede cambiarla desde la app (si se implementa esa UI)
|
-- docker exec -i supabase-db psql -U postgres -d postgres \
|
||||||
-- o el director puede actualizarla con:
|
-- -c "UPDATE auth.users SET encrypted_password = extensions.crypt('NuevaContraseña', extensions.gen_salt('bf')) WHERE email = 'admin@ejemplo.com';"
|
||||||
-- UPDATE auth.users
|
|
||||||
-- SET encrypted_password = extensions.crypt('NuevaContraseña', extensions.gen_salt('bf'))
|
|
||||||
-- WHERE email = 'admin@ejemplo.com';
|
|
||||||
-- ============================================================
|
-- ============================================================
|
||||||
|
|
||||||
DO $$
|
WITH new_user AS (
|
||||||
DECLARE
|
|
||||||
v_user_id uuid;
|
|
||||||
v_inq_org uuid := '10000000-0000-0000-0000-000000000002';
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
-- Insertar usuario en auth.users
|
|
||||||
INSERT INTO auth.users (
|
INSERT INTO auth.users (
|
||||||
id,
|
id,
|
||||||
instance_id,
|
instance_id,
|
||||||
@@ -52,13 +46,9 @@ BEGIN
|
|||||||
'',
|
'',
|
||||||
false
|
false
|
||||||
)
|
)
|
||||||
RETURNING id INTO v_user_id;
|
RETURNING id, email
|
||||||
|
)
|
||||||
-- Asignar rol platform_admin vinculado a InQuality
|
|
||||||
INSERT INTO public.user_roles (user_id, app_role, org_id)
|
INSERT INTO public.user_roles (user_id, app_role, org_id)
|
||||||
VALUES (v_user_id, 'platform_admin', v_inq_org);
|
SELECT id, 'platform_admin', '10000000-0000-0000-0000-000000000002'
|
||||||
|
FROM new_user
|
||||||
RAISE NOTICE 'Usuario creado: % (id=%)', :'email', v_user_id;
|
RETURNING (SELECT email FROM new_user), user_id;
|
||||||
|
|
||||||
END;
|
|
||||||
$$;
|
|
||||||
|
|||||||
Reference in New Issue
Block a user