diff --git a/assign_owner_role.py b/assign_owner_role.py new file mode 100644 index 0000000..8144571 --- /dev/null +++ b/assign_owner_role.py @@ -0,0 +1,48 @@ +import os +import sys +import django + +# Добавляем путь к проекту +sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'myproject')) + +# Настраиваем Django +os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myproject.settings') +django.setup() + +from django.contrib.auth import get_user_model +from django_tenants.utils import schema_context +from user_roles.services import RoleService + +User = get_user_model() + +# Схема тенанта +schema_name = 'buba' + +# Email пользователя +user_email = 'admin@localhost' + +print(f"Назначение роли Owner для пользователя {user_email} в тенанте {schema_name}...") + +# Переключаемся на схему тенанта +with schema_context(schema_name): + try: + # Находим пользователя + user = User.objects.get(email=user_email) + print(f"Пользователь найден: {user.email} (ID: {user.id})") + + # Назначаем роль Owner + user_role = RoleService.assign_role_to_user(user, 'owner') + print(f"✓ Роль '{user_role.role.name}' успешно назначена!") + print(f" - Email: {user_role.user.email}") + print(f" - Имя: {user_role.user.name}") + print(f" - Роль: {user_role.role.name} ({user_role.role.code})") + print(f" - Активен: {user_role.is_active}") + + except User.DoesNotExist: + print(f"✗ Ошибка: Пользователь с email '{user_email}' не найден") + except Exception as e: + print(f"✗ Ошибка при назначении роли: {e}") + import traceback + traceback.print_exc() + +print("\nГотово!") diff --git a/myproject/myproject/urls.py b/myproject/myproject/urls.py index f0ca567..2660ffe 100644 --- a/myproject/myproject/urls.py +++ b/myproject/myproject/urls.py @@ -17,6 +17,7 @@ urlpatterns = [ # Web interface for shop owners path('', views.index, name='index'), # Главная страница path('accounts/', include('accounts.urls')), # Управление аккаунтом + path('roles/', include('user_roles.urls')), # Управление ролями пользователей path('products/', include('products.urls')), # Управление товарами path('customers/', include('customers.urls')), # Управление клиентами path('inventory/', include('inventory.urls')), # Управление складом diff --git a/myproject/templates/navbar.html b/myproject/templates/navbar.html index fa48118..c02eb74 100644 --- a/myproject/templates/navbar.html +++ b/myproject/templates/navbar.html @@ -44,6 +44,11 @@
+ Пользователь больше не сможет войти в систему через этот магазин. + Учетная запись пользователя не будет удалена. +
+ + +{{ user_role.user.email }} ({{ user_role.user.name }})
+| Имя | +Роль | +Статус | +Создан | +Создал | +Действия | +|
|---|---|---|---|---|---|---|
| {{ user_role.user.email }} | +{{ user_role.user.name }} | ++ + {{ user_role.role.name }} + + | ++ {% if user_role.is_active %} + Активен + {% else %} + Неактивен + {% endif %} + | +{{ user_role.created_at|date:"d.m.Y H:i" }} | ++ {% if user_role.created_by %} + {{ user_role.created_by.name }} + {% else %} + — + {% endif %} + | ++ + Изменить + + + Удалить + + | +
Нет пользователей с ролями
+ + Добавить первого пользователя + +