refactor(db): консолидация миграций и рефакторинг кода
Объединены изменения из промежуточных миграций в начальные миграции для упрощения истории базы данных. Удалены миграции: accounts/0002, discounts/0002, orders/0003-0004, products/0002-0005, user_roles/0002, system_settings/0001-0002, integrations/0001-0002. Добавлена автоматическая creation пользователя при установке пароля. Обновлен UI страницы установки пароля с кастомным стилем. Добавлен conditional rendering для кнопки синхронизации Recommerce. Исправлены редиректы с 'index' на '/' в accounts views. Добавлена проверка request.tenant в navbar и authenticate метод в auth backend.
This commit is contained in:
@@ -61,7 +61,7 @@ def login_view(request):
|
||||
|
||||
def logout_view(request):
|
||||
logout(request)
|
||||
return redirect('index')
|
||||
return redirect('/')
|
||||
|
||||
|
||||
@login_required
|
||||
@@ -142,7 +142,7 @@ def password_reset_confirm(request, token):
|
||||
user = CustomUser.objects.get(password_reset_token=token)
|
||||
except CustomUser.DoesNotExist:
|
||||
messages.error(request, 'Ссылка для восстановления пароля недействительна.')
|
||||
return redirect('index')
|
||||
return redirect('/')
|
||||
|
||||
if request.method == 'POST':
|
||||
password1 = request.POST.get('password1')
|
||||
@@ -178,7 +178,7 @@ def password_setup_confirm(request, token):
|
||||
)
|
||||
except TenantRegistration.DoesNotExist:
|
||||
messages.error(request, 'Ссылка для настройки пароля недействительна.')
|
||||
return redirect('index')
|
||||
return redirect('/')
|
||||
|
||||
# Проверить истечение токена (7 дней)
|
||||
if registration.password_setup_token_created_at:
|
||||
@@ -188,24 +188,30 @@ def password_setup_confirm(request, token):
|
||||
request,
|
||||
'Ссылка для настройки пароля истекла. Пожалуйста, свяжитесь с поддержкой.'
|
||||
)
|
||||
return redirect('index')
|
||||
return redirect('/')
|
||||
|
||||
# Получить тенант и пользователя-владельца
|
||||
from django.db import connection
|
||||
tenant = registration.tenant
|
||||
if not tenant:
|
||||
messages.error(request, 'Тенант не найден.')
|
||||
return redirect('index')
|
||||
return redirect('/')
|
||||
|
||||
# Переключиться на схему тенанта чтобы найти владельца
|
||||
connection.set_tenant(tenant)
|
||||
User = get_user_model()
|
||||
try:
|
||||
owner = User.objects.get(email=registration.owner_email)
|
||||
except User.DoesNotExist:
|
||||
connection.set_schema_to_public()
|
||||
messages.error(request, 'Пользователь не найден.')
|
||||
return redirect('index')
|
||||
from accounts.models import CustomUser
|
||||
|
||||
# Создаём пользователя если он не существует (для случаев когда активация прошла без создания пользователя)
|
||||
owner, created = CustomUser.objects.get_or_create(
|
||||
email=registration.owner_email,
|
||||
defaults={
|
||||
'name': registration.owner_name,
|
||||
'is_active': False,
|
||||
}
|
||||
)
|
||||
if created:
|
||||
owner.is_email_confirmed = True
|
||||
owner.save()
|
||||
|
||||
# Обработать POST - установить пароль
|
||||
if request.method == 'POST':
|
||||
|
||||
Reference in New Issue
Block a user