feat & fix: redirect to dash and show page title for login and register
parent
bd9155dad1
commit
11b6a25878
|
@ -1,6 +1,8 @@
|
||||||
{% extends 'accounts/auth/base.html' %}
|
{% extends 'accounts/auth/base.html' %}
|
||||||
|
|
||||||
|
{% block title_name %} {{ title }} {% endblock %}
|
||||||
{% block login %}
|
{% block login %}
|
||||||
<h2>Login</h2>
|
<h2>{{ title }}</h2>
|
||||||
<form action="{% url 'accounts.login' %}" method="POST" class="form" accept-charset="utf-8">
|
<form action="{% url 'accounts.login' %}" method="POST" class="form" accept-charset="utf-8">
|
||||||
{% include "common/components/error.html" %}
|
{% include "common/components/error.html" %}
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{% extends 'accounts/auth/base.html' %}
|
{% extends 'accounts/auth/base.html' %}
|
||||||
|
{% block title_name %} {{ title }} {% endblock %}
|
||||||
{% block login %}
|
{% block login %}
|
||||||
<h2>Sign Up</h2>
|
<h2>{{ title }}</h2>
|
||||||
<form action="{% url 'accounts.register' %}" method="POST" class="form" accept-charset="utf-8">
|
<form action="{% url 'accounts.register' %}" method="POST" class="form" accept-charset="utf-8">
|
||||||
{% include "common/components/error.html" %}
|
{% include "common/components/error.html" %}
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
|
|
|
@ -28,8 +28,13 @@ from .utils import send_verification_email
|
||||||
|
|
||||||
@csrf_protect
|
@csrf_protect
|
||||||
def login_view(request):
|
def login_view(request):
|
||||||
|
def default_login_ctx():
|
||||||
|
return {
|
||||||
|
"title": "Login",
|
||||||
|
}
|
||||||
|
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
ctx = {}
|
ctx = default_login_ctx()
|
||||||
if "next" in request.GET:
|
if "next" in request.GET:
|
||||||
ctx["next"] = request.GET["next"]
|
ctx["next"] = request.GET["next"]
|
||||||
return render(request, "accounts/auth/login.html", ctx)
|
return render(request, "accounts/auth/login.html", ctx)
|
||||||
|
@ -56,18 +61,17 @@ def login_view(request):
|
||||||
return redirect(next_url)
|
return redirect(next_url)
|
||||||
return redirect(reverse("accounts.home"))
|
return redirect(reverse("accounts.home"))
|
||||||
|
|
||||||
ctx = {
|
ctx = default_login_ctx()
|
||||||
"error": {
|
ctx["error"] = {
|
||||||
"title": "Login Failed",
|
"title": "Login Failed",
|
||||||
"reason": "Username or passwrod is incorrect, please try again.",
|
"reason": "Username or passwrod is incorrect, please try again.",
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return render(request, "accounts/auth/login.html", status=401, context=ctx)
|
return render(request, "accounts/auth/login.html", status=401, context=ctx)
|
||||||
|
|
||||||
|
|
||||||
@login_required
|
@login_required
|
||||||
def protected_view(request):
|
def protected_view(request):
|
||||||
return render(request, "accounts/protected.html")
|
return redirect(reverse("dash.home"))
|
||||||
|
|
||||||
|
|
||||||
def default_login_url(request):
|
def default_login_url(request):
|
||||||
|
@ -82,8 +86,15 @@ def logout_view(request):
|
||||||
|
|
||||||
|
|
||||||
def register_view(request):
|
def register_view(request):
|
||||||
|
def default_register_ctx(username=None, email=None):
|
||||||
|
return {
|
||||||
|
"title": "Register",
|
||||||
|
"username": username,
|
||||||
|
"email": username,
|
||||||
|
}
|
||||||
|
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
ctx = {}
|
ctx = default_register_ctx()
|
||||||
if "next" in request.GET:
|
if "next" in request.GET:
|
||||||
ctx["next"] = request.GET["next"]
|
ctx["next"] = request.GET["next"]
|
||||||
return render(request, "accounts/auth/register.html", ctx)
|
return render(request, "accounts/auth/register.html", ctx)
|
||||||
|
@ -94,36 +105,27 @@ def register_view(request):
|
||||||
email = request.POST["email"]
|
email = request.POST["email"]
|
||||||
|
|
||||||
if password != confirm_password:
|
if password != confirm_password:
|
||||||
ctx = {
|
ctx = default_register_ctx(username=username, email=email)
|
||||||
"error": {
|
ctx["error"] = {
|
||||||
"title": "Registration Failed",
|
"title": "Registration Failed",
|
||||||
"reason": "Passwords don't match, please verify input",
|
"reason": "Passwords don't match, please verify input",
|
||||||
},
|
|
||||||
"usernme": username,
|
|
||||||
"email": email,
|
|
||||||
}
|
}
|
||||||
return render(request, "accounts/auth/register.html", status=400, context=ctx)
|
return render(request, "accounts/auth/register.html", status=400, context=ctx)
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
if User.objects.filter(email=email).exists():
|
if User.objects.filter(email=email).exists():
|
||||||
ctx = {
|
ctx = default_register_ctx(username=username, email=email)
|
||||||
"error": {
|
ctx["error"] = {
|
||||||
"title": "Registration Failed",
|
"title": "Registration Failed",
|
||||||
"reason": "Email is already registered",
|
"reason": "Email is already registered",
|
||||||
},
|
|
||||||
"usernme": username,
|
|
||||||
"email": email,
|
|
||||||
}
|
}
|
||||||
return render(request, "accounts/auth/register.html", status=400, context=ctx)
|
return render(request, "accounts/auth/register.html", status=400, context=ctx)
|
||||||
|
|
||||||
if User.objects.filter(username=username).exists():
|
if User.objects.filter(username=username).exists():
|
||||||
ctx = {
|
ctx = default_register_ctx(username=username, email=email)
|
||||||
"error": {
|
ctx["error"] = {
|
||||||
"title": "Registration Failed",
|
"title": "Registration Failed",
|
||||||
"reason": "Username is already registered",
|
"reason": "Username is already registered",
|
||||||
},
|
|
||||||
"usernme": username,
|
|
||||||
"email": email,
|
|
||||||
}
|
}
|
||||||
return render(request, "accounts/auth/register.html", status=400, context=ctx)
|
return render(request, "accounts/auth/register.html", status=400, context=ctx)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue