Files
medical-mall/sql/fix_shop_visibility.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
);