54 lines
1.9 KiB
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 '{}';
|