fc / apps /organization /views.py
jun2024's picture
Upload 2241 files
b4f2238 verified
Raw History Blame Contribute Delete
2.7 kB
from __future__ import annotations
from django.contrib import messages
from django.contrib.auth import login
from django.http import HttpRequest, HttpResponse
from django.shortcuts import redirect, render
from django.utils.translation import gettext_lazy as _
from apps.organization.services.auth_service import AUTO_REGISTER_BOOTSTRAP_USERNAME, AuthService
from .forms import LawyerRegistrationForm
_auth_service = AuthService()
def register(request: HttpRequest) -> HttpResponse:
is_first_user = _auth_service.is_first_user()
show_auto_register = _auth_service.should_show_auto_register()
if request.method == "POST":
if request.POST.get("action") == "auto_register":
try:
result = _auth_service.auto_register_superadmin()
except Exception as e:
messages.error(request, str(e))
return redirect("admin_register")
user = result.user
login(request, user)
messages.success(
request,
_("已自动创建超级管理员账户“%(name)s”,并为您完成登录。")
% {"name": user.real_name or AUTO_REGISTER_BOOTSTRAP_USERNAME},
)
return redirect("admin:index")
form = LawyerRegistrationForm(request.POST)
if form.is_valid():
username: str = form.cleaned_data["username"]
password: str = form.cleaned_data["password1"]
try:
result = _auth_service.register(
username=username,
password=password,
real_name=username,
)
except Exception as e:
messages.error(request, str(e))
else:
user = result.user
if user.is_admin:
login(request, user)
messages.success(
request,
_("注册成功!您是第一个用户,已自动获得管理员权限。欢迎 %(name)s")
% {"name": user.real_name or user.username},
)
return redirect("admin:index")
else:
messages.info(request, _("注册成功!请等待管理员开通权限后再登录。"))
return redirect("admin:login")
else:
form = LawyerRegistrationForm()
return render(
request,
"admin/register.html",
{
"form": form,
"title": _("用户注册"),
"is_first_user": is_first_user,
"show_auto_register": show_auto_register,
},
)