CampFireCritics/supabase/migrations/20250705135500_update_schema.sql
degradin 5572b5f440 Create 20250705135500_update_schema.sql
Миграция политик
2025-05-07 15:19:46 +03:00

65 lines
1.5 KiB
SQL

-- Включаем RLS для всех таблиц
ALTER TABLE users ENABLE ROW LEVEL SECURITY;
ALTER TABLE media ENABLE ROW LEVEL SECURITY;
ALTER TABLE reviews ENABLE ROW LEVEL SECURITY;
-- Политики для таблицы users
CREATE POLICY "Users can view own profile"
ON users FOR SELECT
USING (auth.uid() = id);
CREATE POLICY "Users can update own profile"
ON users FOR UPDATE
USING (auth.uid() = id);
-- Политики для таблицы media
CREATE POLICY "Anyone can view media"
ON media FOR SELECT
USING (true);
CREATE POLICY "Admins can insert media"
ON media FOR INSERT
WITH CHECK (
EXISTS (
SELECT 1 FROM users
WHERE users.id = auth.uid()
AND users.role = 'admin'
)
);
CREATE POLICY "Admins can update media"
ON media FOR UPDATE
USING (
EXISTS (
SELECT 1 FROM users
WHERE users.id = auth.uid()
AND users.role = 'admin'
)
);
CREATE POLICY "Admins can delete media"
ON media FOR DELETE
USING (
EXISTS (
SELECT 1 FROM users
WHERE users.id = auth.uid()
AND users.role = 'admin'
)
);
-- Политики для таблицы reviews
CREATE POLICY "Anyone can view reviews"
ON reviews FOR SELECT
USING (true);
CREATE POLICY "Authenticated users can insert reviews"
ON reviews FOR INSERT
WITH CHECK (auth.uid() IS NOT NULL);
CREATE POLICY "Users can update own reviews"
ON reviews FOR UPDATE
USING (auth.uid() = user_id);
CREATE POLICY "Users can delete own reviews"
ON reviews FOR DELETE
USING (auth.uid() = user_id);