mirror of
https://gitlab.com/MoonTestUse1/AdministrationItDepartmens.git
synced 2025-08-14 00:25:46 +02:00
Initial commit
This commit is contained in:
56
.bolt/supabase_discarded_migrations/0009_fading_grove.sql
Normal file
56
.bolt/supabase_discarded_migrations/0009_fading_grove.sql
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
# Система приоритетов заявок
|
||||
|
||||
1. Новые таблицы
|
||||
- `request_priorities`
|
||||
- `id` (uuid, primary key)
|
||||
- `name` (text, unique)
|
||||
- `description` (text)
|
||||
- `color` (text)
|
||||
- `sla_hours` (integer)
|
||||
- `created_at` (timestamptz)
|
||||
|
||||
2. Безопасность
|
||||
- Включение RLS
|
||||
- Политики для чтения и управления
|
||||
*/
|
||||
|
||||
DO $$ BEGIN
|
||||
-- Создание таблицы приоритетов, если она не существует
|
||||
CREATE TABLE IF NOT EXISTS request_priorities (
|
||||
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
|
||||
name text NOT NULL UNIQUE,
|
||||
description text,
|
||||
color text NOT NULL,
|
||||
sla_hours integer NOT NULL,
|
||||
created_at timestamptz NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
-- Включение RLS
|
||||
ALTER TABLE request_priorities ENABLE ROW LEVEL SECURITY;
|
||||
|
||||
-- Безопасное создание политик с проверкой существования
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_policies
|
||||
WHERE tablename = 'request_priorities'
|
||||
AND policyname = 'Все могут просматривать приоритеты'
|
||||
) THEN
|
||||
CREATE POLICY "Все могут просматривать приоритеты"
|
||||
ON request_priorities
|
||||
FOR SELECT
|
||||
TO authenticated
|
||||
USING (true);
|
||||
END IF;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM pg_policies
|
||||
WHERE tablename = 'request_priorities'
|
||||
AND policyname = 'Только администраторы могут управлять приоритетами'
|
||||
) THEN
|
||||
CREATE POLICY "Только администраторы могут управлять приоритетами"
|
||||
ON request_priorities
|
||||
FOR ALL
|
||||
TO authenticated
|
||||
USING (auth.jwt() ->> 'role' = 'admin');
|
||||
END IF;
|
||||
END $$;
|
Reference in New Issue
Block a user