🚀 Initial commit: Versão atual do TrackSteel APP
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
|
||||
-- Criar tabela de perfis de usuários
|
||||
CREATE TABLE public.profiles (
|
||||
id UUID NOT NULL REFERENCES auth.users ON DELETE CASCADE PRIMARY KEY,
|
||||
email TEXT,
|
||||
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
|
||||
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- Habilitar RLS na tabela profiles
|
||||
ALTER TABLE public.profiles ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Política para permitir que usuários vejam apenas seus próprios perfis
|
||||
CREATE POLICY "Users can view their own profile"
|
||||
ON public.profiles
|
||||
FOR SELECT
|
||||
USING (auth.uid() = id);
|
||||
|
||||
-- Política para permitir que usuários insiram seus próprios perfis
|
||||
CREATE POLICY "Users can insert their own profile"
|
||||
ON public.profiles
|
||||
FOR INSERT
|
||||
WITH CHECK (auth.uid() = id);
|
||||
|
||||
-- Política para permitir que usuários atualizem seus próprios perfis
|
||||
CREATE POLICY "Users can update their own profile"
|
||||
ON public.profiles
|
||||
FOR UPDATE
|
||||
USING (auth.uid() = id);
|
||||
|
||||
-- Função para criar perfil automaticamente quando um usuário se registra
|
||||
CREATE OR REPLACE FUNCTION public.handle_new_user()
|
||||
RETURNS TRIGGER
|
||||
LANGUAGE plpgsql
|
||||
SECURITY DEFINER SET search_path = ''
|
||||
AS $$
|
||||
BEGIN
|
||||
INSERT INTO public.profiles (id, email)
|
||||
VALUES (new.id, new.email);
|
||||
RETURN new;
|
||||
END;
|
||||
$$;
|
||||
|
||||
-- Trigger para executar a função quando um novo usuário é criado
|
||||
CREATE TRIGGER on_auth_user_created
|
||||
AFTER INSERT ON auth.users
|
||||
FOR EACH ROW EXECUTE PROCEDURE public.handle_new_user();
|
||||
Reference in New Issue
Block a user