feat: link local library

This commit is contained in:
gabdevele
2026-06-17 20:43:56 +02:00 Unverified
parent 9a770a2af0
commit db59882f33
327 changed files with 22274 additions and 1 deletions
@@ -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 %}
@@ -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 %}
@@ -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 %}
@@ -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 %}