implement login + logout routes and templates

+ Added route: GET `/login` via `aurweb.routers.auth.login_get`
+ Added route: POST `/login` via `aurweb.routers.auth.login_post`
+ Added route: GET `/logout` via `aurweb.routers.auth.logout`
+ Added route: POST `/logout` via `aurweb.routers.auth.logout_post`
* Modify archdev-navbar.html template to toggle displays on auth state
+ Added login.html template

Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2020-12-31 20:44:59 -08:00
parent 56f2798279
commit 5d4a5deddf
5 changed files with 313 additions and 3 deletions

84
templates/login.html Normal file
View file

@ -0,0 +1,84 @@
{% extends 'partials/layout.html' %}
{% block pageContent %}
<div id="dev-login" class="box">
<h2>AUR {% trans %}Login{% endtrans %}</h2>
{% if request.url.scheme == "http" and config.getboolean("options", "disable_http_login") %}
{% set https_login = url_base.replace("http://", "https://") + "/login/" %}
<p>
{{ "HTTP login is disabled. Please %sswitch to HTTPs%s if you want to login."
| tr
| format(
'<a href="%s">' | format(https_login),
"</a>")
| safe
}}
</p>
{% else %}
{% if request.user.is_authenticated() %}
<p>
{{ "Logged-in as: %s"
| tr
| format("<b>%s</b>" | format(request.user.Username))
| safe
}}
<a href="/logout/?next={{ next }}">[{% trans %}Logout{% endtrans %}]</a>
</p>
{% else %}
<form method="post" action="/login?next={{ next }}">
<fieldset>
<legend>{% trans %}Enter login credentials{% endtrans %}</legend>
{% if errors %}
<ul class="errorlist">
{% for error in errors %}
<li>{{ error }}</li>
{% endfor %}
</ul>
{% endif %}
<p>
<label for="id_username">
{% trans %}User name or primary email address{% endtrans %}:
</label>
<input id="id_username" type="text" name="user" size="30"
maxlength="254" autofocus="autofocus">
</p>
<p>
<label for="id_password">
{% trans %}Password{% endtrans %}:
</label>
<input id="id_password" type="password" name="passwd"
size="30">
</p>
<p>
<input id="id_remember_me" type="checkbox" name="remember_me">
<label for="id_remember_me">
{% trans %}Remember me{% endtrans %}
</label>
</p>
<p>
<input class="button" type="submit"
value="{% trans %}Login{% endtrans %}">
<a href="/passreset/">
[{% trans %}Forgot Password{% endtrans %}]
</a>
<input id="id_referer" type="hidden" name="referer"
value="{{ url_base }}">
<input type="hidden" name="next" value="{{ next }}">
</p>
</fieldset>
</form>
{% endif %}
{% endif %}
</div>
{% endblock %}

View file

@ -1,8 +1,22 @@
<div id="archdev-navbar">
<ul>
<li><a href="/">AUR {% trans %}Home{% endtrans %}</a></li>
{% if request.user.is_authenticated() %}
<li><a href="/">{% trans %}Dashboard{% endtrans %}</a></li>
{% else %}
<li><a href="/">AUR {% trans %}Home{% endtrans %}</a></li>
{% endif %}
<li><a href="/packages/">{% trans %}Packages{% endtrans %}</a></li>
<li><a href="/register/">{% trans %}Register{% endtrans %}</a></li>
<li><a href="/login/">{% trans %}Login{% endtrans %}</a></li>
<li>
{% if request.user.is_authenticated() %}
<a href="/logout/?next={{ next }}">
{% trans %}Logout{% endtrans %}
</a>
{% else %}
<a href="/login/?next={{ next }}">
{% trans %}Login{% endtrans %}
</a>
{% endif %}
</li>
</ul>
</div>