diff --git a/app/templates/base.html b/app/templates/base.html index 4c13148d3c0fb88f913f1e0013b8c21ece4e11f9..342ca701d09e01786e03bbccd242e88eab1a1c7c 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -44,6 +44,7 @@ <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">{{current_user}} <span class="caret"></span></a> <ul class="dropdown-menu"> + <li><a href="{{ url_for('users.profile') }}">Profile</a></li> <li><a href="{{ url_for('users.logout') }}">Logout</a></li> </ul> </li> diff --git a/app/templates/users/profile.html b/app/templates/users/profile.html new file mode 100644 index 0000000000000000000000000000000000000000..e2e082bd49bce2466afbbf742a8c7d8ee4bc9557 --- /dev/null +++ b/app/templates/users/profile.html @@ -0,0 +1,23 @@ +{% import "bootstrap/wtf.html" as wtf %} +{% extends "base.html" %} + +{% block title %}Profile{% endblock %} + +{% block main %} + <div class="page-header"> + <h2>{{ user.username }}</h2> + </div> + <dl> + <dt>Name</dt> + <dd>{{user.name}}</dd> + <dt>Email</dt> + <dd>{{user.email}}</dd> + <dt>Role</dt> + <dd>{{ user.role }}</dd> + {% if token %} + <dt>Token</dt> + <dd>{{ token }}</dd> + {% endif %} + </dl> + <a class="btn btn-default" href="{{ url_for('users.get_token') }}" role="button">Generate Token</a> +{% endblock %} diff --git a/app/users/views.py b/app/users/views.py index 10cd48d7f73185053850a3777784a5c63758034e..f4ab009d7a9abea8c780d0e7364c931fcaa83140 100644 --- a/app/users/views.py +++ b/app/users/views.py @@ -10,8 +10,9 @@ This module implements the users blueprint. """ from flask import Blueprint, render_template, request, redirect, url_for -from flask_login import login_user, logout_user, login_required +from flask_login import login_user, logout_user, login_required, current_user from flask_ldap3_login.forms import LDAPLoginForm +from flask_jwt_extended import create_access_token bp = Blueprint('users', __name__) @@ -30,3 +31,16 @@ def login(): def logout(): logout_user() return redirect(url_for('users.login')) + + +@bp.route('/profile') +@login_required +def profile(): + return render_template('users/profile.html', user=current_user, token='') + + +@bp.route('/token') +@login_required +def get_token(): + token = create_access_token(identity=current_user.id) + return render_template('users/profile.html', user=current_user, token=token)