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