Files
tracksteel_app/supabase/migrations/20250813205913_72643061-e323-4d30-9565-ba98771ccabf.sql

54 lines
1.9 KiB
SQL

-- Atualizar a política RLS da tabela profiles para permitir que todos vejam os nomes dos usuários
DROP POLICY IF EXISTS "Usuários podem ver seus próprios perfis" ON profiles;
DROP POLICY IF EXISTS "Usuários podem ver perfis de outros usuários" ON profiles;
-- Criar nova política que permite a todos visualizar informações básicas dos perfis
CREATE POLICY "Todos podem visualizar perfis básicos"
ON profiles
FOR SELECT
USING (true);
-- Manter política restritiva para updates (apenas próprio perfil ou admin)
CREATE POLICY "Usuários podem atualizar próprio perfil ou admin todos"
ON profiles
FOR UPDATE
USING (auth.uid() = id OR has_role(auth.uid(), 'admin'::app_role));
-- Criar bucket para anexos de solicitações de compra
INSERT INTO storage.buckets (id, name, public)
VALUES ('solicitacao-compras-anexos', 'solicitacao-compras-anexos', false);
-- Política para permitir usuários autenticados fazerem upload
CREATE POLICY "Usuários autenticados podem fazer upload de anexos"
ON storage.objects
FOR INSERT
WITH CHECK (
bucket_id = 'solicitacao-compras-anexos'
AND auth.uid() IS NOT NULL
AND (storage.foldername(name))[1] = auth.uid()::text
);
-- Política para permitir usuários visualizarem anexos
CREATE POLICY "Usuários podem visualizar anexos de solicitações"
ON storage.objects
FOR SELECT
USING (
bucket_id = 'solicitacao-compras-anexos'
AND auth.uid() IS NOT NULL
);
-- Política para permitir usuários deletarem seus próprios anexos
CREATE POLICY "Usuários podem deletar seus próprios anexos"
ON storage.objects
FOR DELETE
USING (
bucket_id = 'solicitacao-compras-anexos'
AND auth.uid() IS NOT NULL
AND (storage.foldername(name))[1] = auth.uid()::text
);
-- Adicionar coluna para armazenar URLs dos anexos na tabela solicitacoes_compra
ALTER TABLE solicitacoes_compra
ADD COLUMN IF NOT EXISTS anexos_urls text[] DEFAULT '{}';