35 lines
1.1 KiB
SQL
35 lines
1.1 KiB
SQL
-- Fix permissions and RLS for ml_shops to make it searchable
|
|
-- Run this in Supabase SQL Editor
|
|
|
|
-- 1. Grant access to postgres/anon/authenticated roles (Standard Supabase setup)
|
|
GRANT SELECT ON public.ml_shops TO anon, authenticated, service_role;
|
|
|
|
-- 2. Enable RLS
|
|
ALTER TABLE public.ml_shops ENABLE ROW LEVEL SECURITY;
|
|
|
|
-- 3. Create policies
|
|
-- Drop existing potential policies to avoid conflicts
|
|
DROP POLICY IF EXISTS "Public can view active shops" ON public.ml_shops;
|
|
DROP POLICY IF EXISTS "Merchants can view own shop" ON public.ml_shops;
|
|
|
|
-- Policy: Everyone can see active shops
|
|
CREATE POLICY "Public can view active shops"
|
|
ON public.ml_shops
|
|
FOR SELECT
|
|
USING (status = 1);
|
|
|
|
-- Policy: Merchants can see and edit their own shop
|
|
CREATE POLICY "Merchants can view own shop"
|
|
ON public.ml_shops
|
|
FOR ALL
|
|
USING (auth.uid() = merchant_id);
|
|
|
|
-- 4. Update product_count for the test shop (and others)
|
|
-- This ensures the sorting works as expected
|
|
UPDATE public.ml_shops s
|
|
SET product_count = (
|
|
SELECT count(*)
|
|
FROM public.ml_products p
|
|
WHERE p.merchant_id = s.merchant_id AND p.status = 1
|
|
);
|