diff options
author | Jose M. Guisado <jguisado@soleta.eu> | 2021-03-05 11:06:11 +0100 |
---|---|---|
committer | Jose M. Guisado <jguisado@soleta.eu> | 2021-03-05 11:47:27 +0100 |
commit | 9ee0565ac41661a0521630fbfe1ea9e896fcec52 (patch) | |
tree | 12dd36a028ed7f9795855c599b2a05b76e058c01 /ogcp/templates | |
parent | 149dfdcbfd31bae79e9872e6f465d127d70ad32b (diff) |
Add login
Ogcp requires a simple login page in order to avoid exposure of the
ogServer API to anyone trying to access the web page.
Because the main authorization mechanism in ogServer is the api token
the login implemented for the ogcp does not include registration process
but a single user and password specified in the ogcp.json.
"USER": "user",
"PASS": "pass"
Adds two new views: /login and /logout. They are used to login the user so
that the rest of views regarding ogServer functionality can be accessed
in a "login required" fashion. Index view (/) is an exception, it can be
accessed logged in or not so different data can be displayed.
Templates can now access a variable "current_user" to get information
about login status. This is a Flask-Login feature.
- Templates regarding login can be found in templates/auth/
- Login form is defined in forms/auth.py to separate it from
action_forms.py
- Adds Flask-Login module to requirements.txt
- Adds default user and pass in ogcp.json
Diffstat (limited to 'ogcp/templates')
-rw-r--r-- | ogcp/templates/auth/login.html | 12 | ||||
-rw-r--r-- | ogcp/templates/base.html | 2 | ||||
-rw-r--r-- | ogcp/templates/nav.html | 18 |
3 files changed, 32 insertions, 0 deletions
diff --git a/ogcp/templates/auth/login.html b/ogcp/templates/auth/login.html new file mode 100644 index 0000000..220f69e --- /dev/null +++ b/ogcp/templates/auth/login.html @@ -0,0 +1,12 @@ +{% extends 'base.html' %} +{% import "bootstrap/wtf.html" as wtf %} + +{% block content %} + +{{ wtf.quick_form(form, + method='post', + form_type='basic', + button_map={'submit':'primary'}, + extra_classes='p-5') }} + +{% endblock %} diff --git a/ogcp/templates/base.html b/ogcp/templates/base.html index 5f07fe7..3f55555 100644 --- a/ogcp/templates/base.html +++ b/ogcp/templates/base.html @@ -17,6 +17,8 @@ <div class="alert alert-info alert-dismissible fade show m-1" role="alert"> {% elif category == 'error' %} <div class="alert alert-danger alert-dismissible fade show m-1" role="alert"> + {% else %} + <div class="alert alert-warning alert-dismissible fade show m-1" role="alert"> {% endif %} {{ message }} <button type="button" class="close" data-dismiss="alert" aria-label="{{ _('Close') }}"> diff --git a/ogcp/templates/nav.html b/ogcp/templates/nav.html index 5147a37..d7741ca 100644 --- a/ogcp/templates/nav.html +++ b/ogcp/templates/nav.html @@ -9,9 +9,27 @@ <li class="nav-item active"> <a class="nav-link" href="{{ url_for('index') }}">{{ _('Home') }}<span class="sr-only">(current)</span></a> </li> + {% if current_user.is_authenticated %} <li class="nav-item"> <a class="nav-link" href="{{ url_for('scopes') }}">{{ _('Scopes') }}</a> </li> + {% endif %} + </ul> + + <ul class="nav navbar-nav navbar-right"> + {% if current_user.is_authenticated %} + + <li class="nav-item"> + <a class="btn btn-danger" href="{{ url_for('logout') }}">{{ _('Logout') }}</a> + </li> + + {% else %} + + <li class="nav-item"> + <a class="btn btn-primary" href="{{ url_for('login') }}">{{ _('Login') }}</a> + </li> + + {% endif %} </ul> </div> </nav> |