feat: link local library
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<!-- Extends default Bootstrap Unical Italia template -->
|
||||
{% extends 'bootstrap-italia-base.html' %}
|
||||
|
||||
{% load static %}
|
||||
{% load i18n %}
|
||||
|
||||
{% block extra_head %}
|
||||
{{ block.super }}
|
||||
<link type="text/css" rel="stylesheet" href="/static/css/provider.css">
|
||||
{% endblock extra_head %}
|
||||
|
||||
{% block page_title %}
|
||||
{% trans "OIDC Provider" %}
|
||||
{% endblock page_title %}
|
||||
|
||||
<!-- URL link top left -->
|
||||
{% block header_slim_org_url %}
|
||||
https://www.spid.gov.it/
|
||||
{% endblock header_slim_org_url %}
|
||||
|
||||
<!-- Name top left -->
|
||||
{% block header_slim_org_name %}
|
||||
{% trans "OIDC Provider" %}
|
||||
{% endblock header_slim_org_name %}
|
||||
|
||||
<!-- Mobile slim_org_name -->
|
||||
{% block header_slim_mobile_org_name %}
|
||||
{% trans "OIDC Provider" %}
|
||||
{% endblock header_slim_mobile_org_name %}
|
||||
|
||||
<!-- Make empty areas -->
|
||||
{% block header_mobile_arrow %}{% endblock header_mobile_arrow %}
|
||||
{% block header_mobile_slim_menu %}{% endblock header_mobile_slim_menu %}
|
||||
|
||||
<!-- Logo in Header -->
|
||||
{% block header_center_logo %}
|
||||
{% endblock header_center_logo %}
|
||||
|
||||
|
||||
<!-- Organization name in Header -->
|
||||
{% block header_center_org_name %}
|
||||
<a href="#">{% trans "OIDC Provider" %}</a>
|
||||
{% endblock header_center_org_name %}
|
||||
|
||||
|
||||
<!-- Organization description in Header -->
|
||||
{% block header_center_org_subname %}
|
||||
{% endblock header_center_org_subname %}
|
||||
|
||||
{% block container %}
|
||||
<div>
|
||||
<div class="container pt-2 p-4">
|
||||
<div class="row d-lg-flex">
|
||||
<div class="col-12">
|
||||
<div class="card-wrapper card-space">
|
||||
<div class="card card-bg no-after">
|
||||
<div class="card-body">
|
||||
<div class="row h-100 px-4 pb-4">
|
||||
{% block centered_container %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock container %}
|
||||
|
||||
<!-- Logo in Footer -->
|
||||
{% block footer_logo %}
|
||||
{% endblock footer_logo %}
|
||||
|
||||
<!-- Organization name in Footer -->
|
||||
{% block footer_org_name %}
|
||||
{% trans "OIDC Provider" %}
|
||||
{% endblock footer_org_name %}
|
||||
|
||||
<!-- Organization name in Footer -->
|
||||
{% block footer_org_subname %}
|
||||
{% trans "OIDC Provider" %}
|
||||
{% endblock footer_org_subname %}
|
||||
|
||||
{% block extra_scripts %}
|
||||
{% block bootstrap_italia_validation %}
|
||||
|
||||
{% endblock bootstrap_italia_validation %}
|
||||
{% endblock extra_scripts %}
|
||||
|
||||
{% block footer_menu_section %}
|
||||
{% endblock footer_menu_section %}
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
{% extends 'op_base.html' %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load spid_cie_op %}
|
||||
|
||||
{% block menu_links %}
|
||||
|
||||
<li class="nav-item ">
|
||||
<a class="nav-link {% if request.resolver_match.view_name == 'oidc_provider_consent' %}active{% endif %}"
|
||||
href="{% url 'oidc_provider_consent' %}">
|
||||
<span>{% trans 'Home' %}</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.view_name == 'oidc_provider_access_history' %}active{% endif %}"
|
||||
href="{% url 'oidc_provider_access_history' %}">
|
||||
<span>{% trans 'Access History' %}</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% endblock menu_links %}
|
||||
|
||||
{% block centered_container %}
|
||||
|
||||
<div class="col-12">
|
||||
|
||||
<div class="row row-header border-bottom no-border-bottom-xs">
|
||||
<div class="wrap-container">
|
||||
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
|
||||
<a href="/" title="torna alla home">
|
||||
<img src="{% oidc_provider_logo %}" alt="Home" width="120">
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear pt-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-5 ml-1">
|
||||
<div>
|
||||
<div class="">
|
||||
<h4 class="text-muted">{% trans 'SPID level access request from' %}</h4>
|
||||
<h3>{{ client_organization_name }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-5 ml-1">
|
||||
<div>
|
||||
<p class="font-weight-semibold">
|
||||
{% trans 'For the proper functioning of the requestor service you must give your consent to the release of the following data '%}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<form method="POST" action="{% url 'oidc_provider_consent' %}">
|
||||
{% csrf_token %}
|
||||
<fieldset>
|
||||
<div class="row">
|
||||
|
||||
{% for form_field in form.visible_fields %}
|
||||
<div class="form-row">
|
||||
<div class="col-12 form-group my-3">
|
||||
<label for="id_{{ form_field.html_name }}">
|
||||
<span class="form-label-content">
|
||||
{{ form_field.label }}
|
||||
</span>
|
||||
</label>
|
||||
{% if form_field.field.widget.input_type%}
|
||||
<input type="{{ form_field.field.widget.input_type }}"
|
||||
class="form-control" id="id_{{ form_field.html_name }}"
|
||||
name="{{ form_field.name }}" value="{{form_field.value|default_if_none:""}}">
|
||||
{% else%}
|
||||
<textarea id="id_{{ form_field.html_name }}"
|
||||
name="{{ form_field.name }}">{{ form.public_jwks.value}}</textarea>
|
||||
{% endif %}
|
||||
</div>
|
||||
<span for="id_{{ form_field.html_name }}" class="text-danger">{{ form_field.errors }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% for hidden in form.hidden_fields %}
|
||||
{{ hidden }}
|
||||
{% endfor %}
|
||||
|
||||
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<div>
|
||||
<ul>
|
||||
{% for claim in user_claims %}
|
||||
<li>{{ claim }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<div class="col-sm-12 pt-4">
|
||||
<a href="{% url 'oidc_provider_not_consent' %}?redirect_uri={{ redirect_uri }}&state={{state}}"
|
||||
class="italia-it-button italia-it-button-cancel-m button-cancel mb-4 mr-4" id="do_not_agree">
|
||||
<span class="italia-it-buttons-text">{% trans "DO NOT AGREE" %}</span>
|
||||
</a>
|
||||
<button id="agree" class="italia-it-button italia-it-button-size-m button-login" type="submit">
|
||||
<span class="italia-it-buttons-text">{% trans "AGREE" %}</span></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<script src="{% static 'js/spid-sp-access-button.js' %}"></script>
|
||||
<script src="{% static 'js/spid_button.js' %}"></script>
|
||||
{% endblock %}
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
{% extends 'op_base.html' %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load spid_cie_op %}
|
||||
|
||||
{% block menu_links %}
|
||||
|
||||
<li class="nav-item ">
|
||||
{% if user.is_staff %}
|
||||
<a class="nav-link {% if request.resolver_match.view_name == 'oidc_provider_staff_testing' %}active{% endif %}"
|
||||
href="{% url 'oidc_provider_staff_testing' %}">
|
||||
<span>{% trans 'Home' %}</span>
|
||||
</a>
|
||||
{% else %}
|
||||
<a class="nav-link {% if request.resolver_match.view_name == 'oidc_provider_consent' %}active{% endif %}"
|
||||
href="{% url 'oidc_provider_consent' %}">
|
||||
<span>{% trans 'Home' %}</span>
|
||||
</a>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.view_name == 'oidc_provider_access_history' %}active{% endif %}"
|
||||
href="{% url 'oidc_provider_access_history' %}">
|
||||
<span>{% trans 'Access History' %}</span>
|
||||
</a>
|
||||
</li>
|
||||
|
||||
{% endblock menu_links %}
|
||||
|
||||
{% block centered_container %}
|
||||
|
||||
<div class="col-12">
|
||||
|
||||
<div class="row row-header border-bottom no-border-bottom-xs">
|
||||
<div class="wrap-container">
|
||||
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
|
||||
<a href="/" title="torna alla home">
|
||||
<img src="{% oidc_provider_logo %}" alt="Home" width="120">
|
||||
</a>
|
||||
</div>
|
||||
<div class="clear pt-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-4 ml-1">
|
||||
<h4 class="text-left">
|
||||
{% blocktrans %}
|
||||
Access history of {{user}}
|
||||
{% endblocktrans%}
|
||||
</h4>
|
||||
</div>
|
||||
|
||||
<div class="row mt-2 ml-1">
|
||||
<div>
|
||||
<p class="">
|
||||
{% blocktrans%}
|
||||
Accesses logs and status are listed below,
|
||||
you can revoke an access to a Relying Party by clicking on "revoke" button
|
||||
{% endblocktrans %}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% csrf_token %}
|
||||
|
||||
<table class="table table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">#</th>
|
||||
<th scope="col">{% trans "Relying party" %}</th>
|
||||
<th scope="col">{% trans "Sid" %}</th>
|
||||
<th scope="col">{% trans "Created" %}</th>
|
||||
<th scope="col">{% trans "Revoked" %}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for session in history %}
|
||||
<tr>
|
||||
<th scope="row">{{ forloop.counter }}</th>
|
||||
<td>{{ session.client_id }}</td>
|
||||
<td>{{ session.sid|truncatechars:33 }}</td>
|
||||
<td>{{ session.created | date:'Y-m-d H:i'}}</td>
|
||||
{% if session.revoked %}
|
||||
<td class="text-success">
|
||||
{{ session.revoked }}
|
||||
</td>
|
||||
{% else %}
|
||||
<td>
|
||||
<a href="{% url 'oidc_provider_revoke_session' %}?auth_code={{session.auth_code}}"
|
||||
class="btn btn-secondary" role="button">{% trans "Revoke" %}</a>
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<nav class="pagination-wrapper justify-content-center">
|
||||
<ul class="pagination">
|
||||
{% if history.has_previous %}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page={{history.previous_page_number}}" tabindex="-1" aria-hidden="true">
|
||||
<svg class="icon icon-primary">
|
||||
<use href="{% static 'svg/sprite.svg' %}#it-chevron-left"></use>
|
||||
</svg>
|
||||
<span class="sr-only">{% trans "previous page" %}</span>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% for i in history.paginator.page_range%}
|
||||
{% if i == history.number %}
|
||||
<li class="page-item active">
|
||||
<a class="page-link" href="?page={{ i }}" aria-current="page">
|
||||
<span class="d-inline-block d-sm-none">{% trans "page" %}</span>{{ i }}
|
||||
</a>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="page-item"><a class="page-link" href="?page={{ i }}">{{ i }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if history.has_next%}
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="?page={{history.next_page_number}}">
|
||||
<span class="sr-only">{% trans "next page" %}</span>
|
||||
<svg class="icon icon-primary">
|
||||
<use href="{% static 'svg/sprite.svg' %}#it-chevron-right"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
{% extends 'op_base.html' %}
|
||||
{% load i18n %}
|
||||
{% load static %}
|
||||
{% load spid_cie_op %}
|
||||
|
||||
{% block menu_links %}{% endblock menu_links %}
|
||||
{% block centered_container %}
|
||||
|
||||
<div class="col-12">
|
||||
<div class="row row-header border-bottom no-border-bottom-xs">
|
||||
<div class="wrap-container">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
|
||||
<a href="/" title="torna alla home">
|
||||
<img src="{% oidc_provider_logo %}" alt="Home" width="120">
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6 {% oidc_provider_arc_value_position %}">
|
||||
<div class="mt-2 ml-2">
|
||||
<label class="pl-1 pr-1 ml-4 mt-2 font-weight-bold
|
||||
{% if acr_value == 'l3'%}complementary-1-bg-a6 text-white
|
||||
{% elif acr_value == 'l2'%}complementary-2-bg-b1 text-dark
|
||||
{% else %}complementary-3-bg-b3 text-white{% endif%}">
|
||||
{{ acr_value | capfirst }}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="clear pt-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
|
||||
<div class="row mt-4 ml-1">
|
||||
<div>
|
||||
<div class="pb-2">
|
||||
<h4 class="text-muted">{% trans 'Authentication request from' %}
|
||||
</h4>
|
||||
<h3>{{ client_organization_name }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 row mt-4" >
|
||||
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<form method="POST" action='{% url "oidc_provider_authnrequest" %}'>
|
||||
<fieldset>
|
||||
<div class="row">
|
||||
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12 ">
|
||||
<div>
|
||||
{% csrf_token %}
|
||||
{% for form_field in form.visible_fields %}
|
||||
<div class="form-row pr-4">
|
||||
<div class="col-12 form-group my-3">
|
||||
<label for="id_{{ form_field.html_name }}" id="label_{{form_field.html_name}}">
|
||||
<span class="form-label-content">
|
||||
{{ form_field.label }}
|
||||
</span>
|
||||
</label>
|
||||
{% if form_field.field.widget.input_type%}
|
||||
<input
|
||||
type="{{ form_field.field.widget.input_type }}"
|
||||
class="form-control"
|
||||
id="id_{{ form_field.html_name }}"
|
||||
name="{{ form_field.name }}"
|
||||
value="{{form_field.value|default_if_none:''}}">
|
||||
{% endif %}
|
||||
</div>
|
||||
<span for="id_{{ form_field.html_name }}"
|
||||
class="text-danger">{{ form_field.errors }}</span>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
{% for hidden in hidden_form.hidden_fields %}
|
||||
{{ hidden }}
|
||||
{% endfor %}
|
||||
|
||||
<div class="col-sm-12 mt-2">
|
||||
<a href="{% url 'oidc_provider_not_consent' %}?redirect_uri={{ redirect_uri }}&state={{state}}"
|
||||
class="italia-it-button italia-it-button-cancel-m button-cancel mb-4 mr-4">
|
||||
<span class="italia-it-buttons-text">{% trans "Cancel" %}</span>
|
||||
</a>
|
||||
|
||||
<button id="submit" class="italia-it-button italia-it-button-size-m button-login" type="submit">
|
||||
<span class="italia-it-button-icon">
|
||||
<img src="{% static 'svg/spid-ico-circle-bb.svg' %}"
|
||||
alt="">
|
||||
</span>
|
||||
<span class="italia-it-buttons-text">{% trans "Login" %}</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
|
||||
<div class="mt-2 ml-4">
|
||||
<div class="row">
|
||||
<div class="alert alert-info mt-2" role="alert">
|
||||
{% blocktrans %}
|
||||
If you login as a <b>staff user</b> you will be redirected to the test page.
|
||||
Otherwise there will be the traditional consent page.
|
||||
{% endblocktrans %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="{% static 'js/spid-sp-access-button.js' %}"></script>
|
||||
<script src="{% static 'js/spid_button.js' %}"></script>
|
||||
{% endblock %}
|
||||
Reference in New Issue
Block a user