sipher/supabase/row_level_security_policies_for_messaging_app.sql
Nyxian 79bdca973c UI+ Routes
Made even more changes the UI and added new Routes for searching a user, requesting consent for messaging and others.
Now just need to make the SSE work.
2024-12-12 08:56:11 -03:00

37 lines
1.1 KiB
SQL

-- RLS Policies
ALTER TABLE users ENABLE ROW LEVEL SECURITY;
ALTER TABLE message_threads ENABLE ROW LEVEL SECURITY;
ALTER TABLE thread_participants ENABLE ROW LEVEL SECURITY;
ALTER TABLE messages ENABLE ROW LEVEL SECURITY;
-- Users policies
CREATE POLICY "Users can view their own profile"
ON users FOR SELECT
USING (auth.uid() = uuid);
CREATE POLICY "Users can view indexable profiles"
ON users FOR SELECT
USING (indexable = true);
CREATE POLICY "Users can update their own profile"
ON users FOR UPDATE
USING (auth.uid() = uuid);
-- Message threads policies
CREATE POLICY "Users can view their threads"
ON message_threads FOR SELECT
USING (is_thread_participant(id));
-- Thread participants policies
CREATE POLICY "Users can view their thread participants"
ON thread_participants FOR SELECT
USING (is_thread_participant(thread_id));
-- Messages policies
CREATE POLICY "Users can view their messages"
ON messages FOR SELECT
USING (is_thread_participant(thread_id));
CREATE POLICY "Users can send messages"
ON messages FOR INSERT
WITH CHECK (is_thread_participant(thread_id));