forked from enviPath/enviPy
[Fix] Registering Issue (#125)
Co-authored-by: Tim Lorsbach <tim@lorsba.ch> Reviewed-on: enviPath/enviPy#125
This commit is contained in:
125
epdb/views.py
125
epdb/views.py
@ -51,71 +51,44 @@ def login(request):
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
elif request.method == 'POST':
|
||||
is_login = bool(request.POST.get('login', False))
|
||||
is_register = bool(request.POST.get('register', False))
|
||||
from django.contrib.auth import authenticate
|
||||
from django.contrib.auth import login
|
||||
|
||||
if is_login:
|
||||
from django.contrib.auth import authenticate
|
||||
from django.contrib.auth import login
|
||||
username = request.POST.get('username')
|
||||
password = request.POST.get('password')
|
||||
|
||||
username = request.POST.get('username')
|
||||
password = request.POST.get('password')
|
||||
# Get email for username and check if the account is active
|
||||
try:
|
||||
temp_user = get_user_model().objects.get(username=username)
|
||||
|
||||
# Get email for username and check if the account is active
|
||||
try:
|
||||
temp_user = get_user_model().objects.get(username=username)
|
||||
|
||||
if not temp_user.is_active:
|
||||
context['message'] = "User account is not activated yet!"
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
email = temp_user.email
|
||||
except get_user_model().DoesNotExist:
|
||||
context['message'] = "Login failed!"
|
||||
return render(request, 'static/login.html', context)
|
||||
try:
|
||||
user = authenticate(username=email, password=password)
|
||||
except Exception as e:
|
||||
context['message'] = "Login failed!"
|
||||
if not temp_user.is_active:
|
||||
context['message'] = "User account is not activated yet!"
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
if user is not None:
|
||||
login(request, user)
|
||||
|
||||
if next := request.POST.get('next'):
|
||||
return redirect(next)
|
||||
|
||||
return redirect(s.SERVER_URL)
|
||||
else:
|
||||
context['message'] = "Login failed!"
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
elif is_register:
|
||||
username = request.POST.get('username')
|
||||
email = request.POST.get('email')
|
||||
password = request.POST.get('password', '').strip()
|
||||
rpassword = request.POST.get('rpassword', '').strip()
|
||||
|
||||
if password != rpassword or password == '':
|
||||
context['message'] = "Registration failed, provided passwords differ!"
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
try:
|
||||
u = UserManager.create_user(username, email, password)
|
||||
except Exception:
|
||||
context['message'] = "Registration failed! Couldn't create User Account."
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
if s.ADMIN_APPROVAL_REQUIRED:
|
||||
context['message'] = "Your account has been created! An admin will activate it soon!"
|
||||
else:
|
||||
context['message'] = "Account has been created! You'll receive a mail to activate your account shortly."
|
||||
email = temp_user.email
|
||||
except get_user_model().DoesNotExist:
|
||||
context['message'] = "Login failed!"
|
||||
return render(request, 'static/login.html', context)
|
||||
try:
|
||||
user = authenticate(username=email, password=password)
|
||||
except Exception as e:
|
||||
context['message'] = "Login failed!"
|
||||
return render(request, 'static/login.html', context)
|
||||
|
||||
if user is not None:
|
||||
login(request, user)
|
||||
|
||||
if next := request.POST.get('next'):
|
||||
return redirect(next)
|
||||
|
||||
return redirect(s.SERVER_URL)
|
||||
else:
|
||||
return HttpResponseBadRequest()
|
||||
context['message'] = "Login failed!"
|
||||
return render(request, 'static/login.html', context)
|
||||
else:
|
||||
return HttpResponseNotAllowed(['GET', 'POST'])
|
||||
|
||||
|
||||
def logout(request):
|
||||
if request.method == 'POST':
|
||||
is_logout = bool(request.POST.get('logout', False))
|
||||
@ -128,6 +101,48 @@ def logout(request):
|
||||
return HttpResponseBadRequest()
|
||||
|
||||
|
||||
def register(request):
|
||||
current_user = _anonymous_or_real(request)
|
||||
context = get_base_context(request)
|
||||
|
||||
if request.method == 'GET':
|
||||
context['title'] = 'enviPath'
|
||||
context['next'] = request.GET.get('next', '')
|
||||
return render(request, 'static/register.html', context)
|
||||
elif request.method == 'POST':
|
||||
context['title'] = 'enviPath'
|
||||
if next := request.POST.get('next'):
|
||||
context['next'] = next
|
||||
|
||||
username = request.POST.get('username', '').strip()
|
||||
email = request.POST.get('email', '').strip()
|
||||
password = request.POST.get('password', '').strip()
|
||||
rpassword = request.POST.get('rpassword', '').strip()
|
||||
|
||||
if not (username and email and password):
|
||||
context["message"] = "Invalid username/email/password"
|
||||
return render(request, 'static/register.html', context)
|
||||
|
||||
if password != rpassword or password == '':
|
||||
context['message'] = "Registration failed, provided passwords differ!"
|
||||
return render(request, 'static/register.html', context)
|
||||
|
||||
try:
|
||||
u = UserManager.create_user(username, email, password)
|
||||
except Exception:
|
||||
context['message'] = "Registration failed! Couldn't create User Account."
|
||||
return render(request, 'static/register.html', context)
|
||||
|
||||
if s.ADMIN_APPROVAL_REQUIRED:
|
||||
context['success_message'] = "Your account has been created! An admin will activate it soon!"
|
||||
else:
|
||||
context['success_message'] = "Account has been created! You'll receive a mail to activate your account shortly."
|
||||
|
||||
return render(request, 'static/login.html', context)
|
||||
else:
|
||||
return HttpResponseNotAllowed(['GET', 'POST'])
|
||||
|
||||
|
||||
def editable(request, user):
|
||||
|
||||
if user.is_superuser:
|
||||
|
||||
Reference in New Issue
Block a user