TUDO
This commit is contained in:
86
complete_fix.sql
Normal file
86
complete_fix.sql
Normal file
@@ -0,0 +1,86 @@
|
||||
-- =====================================================
|
||||
-- SCRIPT COMPLETO PARA CORRIGIR PROBLEMAS DO SUPABASE
|
||||
-- =====================================================
|
||||
|
||||
-- 1. CRIAR TABELA USERS SE NÃO EXISTIR
|
||||
CREATE TABLE IF NOT EXISTS public.users (
|
||||
id UUID REFERENCES auth.users(id) PRIMARY KEY,
|
||||
name TEXT,
|
||||
email TEXT,
|
||||
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
|
||||
);
|
||||
|
||||
-- 2. REMOVER TRIGGERS E FUNÇÕES ANTIGAS
|
||||
DROP TRIGGER IF EXISTS on_auth_user_created ON auth.users;
|
||||
DROP FUNCTION IF EXISTS public.handle_new_user();
|
||||
|
||||
-- 3. CRIAR FUNÇÃO DE TRIGGER CORRETA
|
||||
CREATE OR REPLACE FUNCTION public.handle_new_user()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
INSERT INTO public.users (id, name, email)
|
||||
VALUES (
|
||||
NEW.id,
|
||||
COALESCE(NEW.raw_user_meta_data->>'name', 'User'),
|
||||
NEW.email
|
||||
);
|
||||
RETURN NEW;
|
||||
EXCEPTION
|
||||
WHEN duplicate_key THEN
|
||||
-- User already exists, ignore
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ LANGUAGE plpgsql SECURITY DEFINER;
|
||||
|
||||
-- 4. CRIAR TRIGGER
|
||||
CREATE TRIGGER on_auth_user_created
|
||||
AFTER INSERT ON auth.users
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.handle_new_user();
|
||||
|
||||
-- 5. DESABILITAR RLS PARA A TABELA USERS (TEMPORÁRIO)
|
||||
ALTER TABLE public.users DISABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- 6. DAR PERMISSÕES COMPLETAS PARA ANON E AUTHENTICATED
|
||||
GRANT ALL ON public.users TO anon;
|
||||
GRANT ALL ON public.users TO authenticated;
|
||||
GRANT ALL ON public.users TO service_role;
|
||||
|
||||
-- 7. VERIFICAR ESTRUTURA DA TABELA
|
||||
SELECT
|
||||
column_name,
|
||||
data_type,
|
||||
is_nullable,
|
||||
column_default
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 'users'
|
||||
AND table_schema = 'public'
|
||||
ORDER BY ordinal_position;
|
||||
|
||||
-- 8. VERIFICAR PERMISSÕES
|
||||
SELECT
|
||||
grantee,
|
||||
table_name,
|
||||
privilege_type
|
||||
FROM information_schema.role_table_grants
|
||||
WHERE table_name = 'users'
|
||||
AND table_schema = 'public';
|
||||
|
||||
-- 9. VERIFICAR TRIGGERS
|
||||
SELECT
|
||||
trigger_name,
|
||||
event_manipulation,
|
||||
action_timing,
|
||||
action_condition,
|
||||
action_statement
|
||||
FROM information_schema.triggers
|
||||
WHERE event_object_table = 'users'
|
||||
OR event_object_table = 'users';
|
||||
|
||||
-- 10. VERIFICAR FUNÇÕES
|
||||
SELECT
|
||||
proname,
|
||||
prosrc
|
||||
FROM pg_proc
|
||||
WHERE proname = 'handle_new_user';
|
||||
Reference in New Issue
Block a user