Mega push vol 3
This commit is contained in:
53
supabase/migrations/012_task_comments.sql
Normal file
53
supabase/migrations/012_task_comments.sql
Normal file
@@ -0,0 +1,53 @@
|
||||
-- Task comments for kanban cards
|
||||
|
||||
CREATE TABLE IF NOT EXISTS kanban_comments (
|
||||
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
card_id UUID NOT NULL REFERENCES kanban_cards(id) ON DELETE CASCADE,
|
||||
user_id UUID NOT NULL REFERENCES profiles(id) ON DELETE CASCADE,
|
||||
content TEXT NOT NULL,
|
||||
created_at TIMESTAMPTZ DEFAULT now(),
|
||||
updated_at TIMESTAMPTZ DEFAULT now()
|
||||
);
|
||||
|
||||
-- Enable RLS
|
||||
ALTER TABLE kanban_comments ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Comments inherit access from the card's board -> org
|
||||
CREATE POLICY "Comments inherit card access" ON kanban_comments
|
||||
FOR SELECT USING (
|
||||
EXISTS (
|
||||
SELECT 1 FROM kanban_cards c
|
||||
JOIN kanban_columns col ON c.column_id = col.id
|
||||
JOIN kanban_boards b ON col.board_id = b.id
|
||||
JOIN org_members m ON b.org_id = m.org_id
|
||||
WHERE c.id = kanban_comments.card_id
|
||||
AND m.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
-- Users can insert their own comments
|
||||
CREATE POLICY "Users can insert own comments" ON kanban_comments
|
||||
FOR INSERT WITH CHECK (
|
||||
user_id = auth.uid() AND
|
||||
EXISTS (
|
||||
SELECT 1 FROM kanban_cards c
|
||||
JOIN kanban_columns col ON c.column_id = col.id
|
||||
JOIN kanban_boards b ON col.board_id = b.id
|
||||
JOIN org_members m ON b.org_id = m.org_id
|
||||
WHERE c.id = kanban_comments.card_id
|
||||
AND m.user_id = auth.uid()
|
||||
)
|
||||
);
|
||||
|
||||
-- Users can update their own comments
|
||||
CREATE POLICY "Users can update own comments" ON kanban_comments
|
||||
FOR UPDATE USING (user_id = auth.uid());
|
||||
|
||||
-- Users can delete their own comments
|
||||
CREATE POLICY "Users can delete own comments" ON kanban_comments
|
||||
FOR DELETE USING (user_id = auth.uid());
|
||||
|
||||
-- Index for faster lookups
|
||||
CREATE INDEX IF NOT EXISTS idx_kanban_comments_card ON kanban_comments(card_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_kanban_comments_user ON kanban_comments(user_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_kanban_comments_created ON kanban_comments(created_at DESC);
|
||||
Reference in New Issue
Block a user