feat: Добавлен флаг is_superuser для platform_support и сохранение credentials в файл
- Platform support пользователь теперь создается с is_superuser=True для полного доступа - Добавлено сохранение credentials (домен:логин:пароль) в support_credentials.txt - Добавлен support_credentials.txt в .gitignore для безопасности - Обновлена документация развертывания на NAS Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -279,6 +279,7 @@ class TenantOnboardingService:
|
||||
support_user.is_email_confirmed = True
|
||||
support_user.email_confirmed_at = timezone.now()
|
||||
support_user.is_active = True
|
||||
support_user.is_superuser = True
|
||||
support_user.save()
|
||||
|
||||
# Назначаем роль platform_support
|
||||
@@ -290,6 +291,38 @@ class TenantOnboardingService:
|
||||
f"Email: {support_email} | Пароль: {password}"
|
||||
)
|
||||
|
||||
# Сохраняем credentials в файл
|
||||
cls._save_support_credentials(registration, support_email, password)
|
||||
|
||||
@classmethod
|
||||
def _save_support_credentials(cls, registration: TenantRegistration, email: str, password: str):
|
||||
"""
|
||||
Сохраняет credentials техподдержки в файл.
|
||||
|
||||
Формат: домен:логин:пароль
|
||||
Файл: support_credentials.txt в корне проекта
|
||||
"""
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
# Корень проекта (где manage.py)
|
||||
project_root = Path(settings.BASE_DIR)
|
||||
credentials_file = project_root / 'support_credentials.txt'
|
||||
|
||||
# Формируем домен тенанта
|
||||
domain_base = settings.TENANT_DOMAIN_BASE
|
||||
if ':' in domain_base:
|
||||
domain_base = domain_base.split(':')[0]
|
||||
tenant_domain = f"{registration.schema_name}.{domain_base}"
|
||||
|
||||
# Добавляем строку в файл
|
||||
try:
|
||||
with open(credentials_file, 'a', encoding='utf-8') as f:
|
||||
f.write(f"{tenant_domain}:{email}:{password}\n")
|
||||
logger.info(f"Credentials сохранены в {credentials_file}")
|
||||
except Exception as e:
|
||||
logger.error(f"Ошибка сохранения credentials: {e}")
|
||||
|
||||
@classmethod
|
||||
def _init_tenant_data(cls):
|
||||
"""Инициализация системных данных тенанта."""
|
||||
|
||||
Reference in New Issue
Block a user