fastapi_aad_auth.ui:user.html

{% extends "fastapi_aad_auth.ui:base.html" %}

{% block CSS %}
        {{ super() }}
        <link href="{{static_path}}/css/open-iconic-bootstrap.css" rel="stylesheet">
{% endblock CSS %}

{% block Content %}
    {% if containerClass %}
        <div class='{{containerClass}}'>
    {% else %}
        <div class='container'>
    {% endif %}

        {% block ContentHeader %}
            <div class="cover-container d-flex h-5 p-3 mx-auto flex-column text-center justify-content-center">
                <main class="inner-cover">
                    <p class="lead">
                        {% if logo %}
                        {{logo | safe }}
                        {% endif %}
                        {% if appname %}
                        <h1 class="h1">{{appname}}</h1>
                        {% endif %}

                    </p>
                </main>
            </div>
        {% endblock ContentHeader %}
        {% block ContentSubHeader %}
            <div class="row mb-md-3">
                <h2>Current User</h2>
            </div>
        {% endblock ContentSubHeader %}
        {% block ContentTable %}
            <div class="row">
                <table class="table">
                    <tbody>
                        <tr class="d-flex">
                        <th class="col-2" scope="row">Username</th>
                        <td class="col-10">{{user.username}}</td>
                        </tr>

                        <tr class="d-flex">
                        <th class="col-2" scope="row">Name</th>
                        <td class="col-10">{{user.name}}</td>
                        </tr>

                        <tr class="d-flex">
                        <th class="col-2" scope="row">Email</th>
                        <td class="col-10">{{user.email}}</td>
                        </tr>

                        <tr class="d-flex">
                        <th class="col-2" scope="row">Roles</th>
                        <td class="col-10">{% if user.roles %}{{user.roles|join(", ")}}{% endif %}</td>
                        </tr>

                        <tr class="d-flex">
                        <th class="col-2" scope="row">Groups</th>
                        <td class="col-10">{% if user.groups %}{{user.groups|join(", ")}}{% endif %}</td>
                        </tr>
                        <tr class="d-flex bg-success">
                        <th class="col-2" scope="row">Permissions</th>
                        <td class="col-10"><i>{% if user.permissions %}{{user.permissions | join("</i>, <i>") | safe}}{% endif %}</i></td>
                        </tr>

                        <tr class="d-flex">
                        <th class="col-2" scope="row">Bearer Token</th>
                        <td class="col-10">
                            <div class="input-group mb-3">
                                <div class="input-group-prepend">
                                <button type="button" class="btn btn-success" id="loadToken" data-toggle="button">
                                    <span class="oi oi-key" title="This token is valid for this application" aria-hidden="true"></span>
                                </button>
                                </div>
                                <input type="text" id="tokenText" class="form-control" value="*********" aria-label="" aria-describedby="token" readonly>
                            </div>
                            <span id="expires"></span>
                        </td>
                        </tr>



                    </tbody>
                </table>
            </div>
        {% endblock ContentTable %}
        {% block ContentFooter %}
            {% if copyright %}
                <p class="mt-5 mb-3 lead text-muted">© {{ copyright }}</p>
            {% endif %}
            {% if explanation %}
                <p class="mt-5 mb-3 lead text-muted">{{ explanation }}</p>
            {% endif %}
        {% endblock ContentFooter %}
        </div>
{% endblock Content %}

{% block BodyScripts %}
        <script>
            $(document).ready(function(){
              $('#tokenText').val('*********');
              $('#expires').text("");
              $("#loadToken").click(function(e){
                if (!e.currentTarget.classList.contains("active")){
                  $.ajax("{{token_api_path}}?ajax=True").done(function(data){
                    if (data.redirect) {
                        data.query_params.redirect = "{{ request.path }}"
                        login_url = data.redirect+"?"+$.param(data.query_params);
                        window.location.replace(login_url);
                    } else {
                        $('#tokenText').val(data['access_token']);
                        var expires = new Date();
                        expires.setSeconds(expires.getSeconds()+data['expires_in']);
                        $('#expires').text("Expires: "+expires.toString())
                    }
                  });
                  e.currentTarget.className += " active"}
                else{
                  $('#tokenText').val('*********');
                  e.currentTarget.className = e.currentTarget.className.replace(" active", "");
                  $('#expires').text("")
                }})});

          </script>
{% endblock BodyScripts %}