-
users - Пользователи системы
- id (PK)
- email (UNIQUE)
- password_hash
- first_name
- last_name
- patronymic
- is_active
- is_superuser
- created_at
- updated_at
- deleted_at (мягкое удаление)
-
roles - Роли пользователей
- id (PK)
- name (UNIQUE)
- description
- created_at
-
user_roles- Связь пользователей и ролей
- id (PK)
- user_id (FK → users)
- role_id (FK → roles)
- created_at
-
business_elements - Бизнес-объекты системы
- id (PK)
- name (UNIQUE)
- description
- created_at
-
access_rules - Правила доступа
- id (PK)
- role_id (FK → roles)
- element_id (FK → business_elements)
- can_read (bool)
- can_read_all (bool)
- can_create (bool)
- can_update (bool)
- can_update_all (bool)
- can_delete (bool)
- can_delete_all (bool)
- created_at
- updated_at
-
tokens - Токены для JWT аутентификации
- id (PK)
- user_id (FK → users)
- token
- expires_at
- is_active
- created_at
Бизнес-объекты (Mock данные)
- products - Товары
- orders - Заказы
- customers - Клиенты
- suppliers - Поставщики
- reports - Отчеты
Роли по умолчанию
- admin - Полный доступ ко всем ресурсам
- manager - Доступ к товарам, заказам, клиентам
- user - Базовый доступ к своему профилю и товарам
- guest - Только просмотр товаров
Как запустить
git clone https://github.com/yakubka/_auth_system_.git
cd имя дериктории
python -m venv venv
chmod +x run.sh
./run.sh