Files
App-Estoque-LiberiKids/sql/add-client-passwords.sql
2025-11-29 21:31:52 -03:00

40 lines
1.7 KiB
SQL

-- =============================================
-- ADICIONAR SISTEMA DE SENHAS PARA CLIENTES
-- =============================================
-- Adicionar coluna de senha na tabela clientes (opcional, para referência)
ALTER TABLE clientes
ADD COLUMN IF NOT EXISTS senha_hash VARCHAR(255);
-- Criar índice para melhor performance nas consultas de autenticação
CREATE INDEX IF NOT EXISTS idx_clientes_whatsapp ON clientes(whatsapp);
CREATE INDEX IF NOT EXISTS idx_clientes_email ON clientes(email);
-- Comentários para documentação
COMMENT ON COLUMN clientes.senha_hash IS 'Hash da senha do cliente para autenticação no catálogo';
-- Habilitar RLS (Row Level Security) se ainda não estiver habilitado
ALTER TABLE clientes ENABLE ROW LEVEL SECURITY;
-- Remover políticas existentes se houver (para evitar conflitos)
DROP POLICY IF EXISTS "Clientes podem ver apenas seus próprios dados" ON clientes;
DROP POLICY IF EXISTS "Permitir inserção de novos clientes" ON clientes;
DROP POLICY IF EXISTS "Clientes podem atualizar seus próprios dados" ON clientes;
-- Política para permitir inserção de novos clientes (cadastro público)
CREATE POLICY "Permitir inserção de novos clientes" ON clientes
FOR INSERT WITH CHECK (true);
-- Política para permitir leitura pública de clientes (necessário para login)
CREATE POLICY "Permitir leitura de clientes" ON clientes
FOR SELECT USING (true);
-- Política para permitir que clientes atualizem seus próprios dados
CREATE POLICY "Clientes podem atualizar seus próprios dados" ON clientes
FOR UPDATE USING (auth.uid()::text = id::text);
-- Verificar se as políticas foram criadas corretamente
SELECT schemaname, tablename, policyname, permissive, roles, cmd, qual
FROM pg_policies
WHERE tablename = 'clientes';