- Added role management views (list, create, edit, delete) - Created user_roles URL routing - Added role management templates with Bootstrap styling - Updated navbar with Roles link for owners and superusers - Enhanced decorators and mixins with superuser bypass - Added assign_owner_role.py utility script 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
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Готово!")
|