Importe le thème A2 de l'AUF

This commit is contained in:
Benjamin Dauvergne 2015-02-02 11:04:01 +01:00
parent 2c427efd45
commit da8c7ef142
27 changed files with 1197 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -0,0 +1,395 @@
/* theme derived and inspired by TerraFirma
* <http://www.oswd.org/design/information/id/3557/>
*/
html, body {
margin: 0;
font-family: sans-serif;
font-size: 12px;
}
body#iframe {
background: white;
}
html {
background-color: #505050;
color: #8c8c73;
}
a
{
color: #FF7800;
text-decoration: underline;
}
a:hover
{
text-decoration: none;
}
div#wrap {
background: white;
width: 640px;
margin: 5em auto;
padding: 15px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
-moz-box-shadow: 0 0 4px rgba(0,0,0,0.75);
-webkit-box-shadow: 0 0 4px rgba(0,0,0,0.75);
position: relative;
}
#header
{
position: absolute;
width: 174px;
height: 100px;
padding-left: 11px;
color: #fff;
/* padding-left: 10px; */
}
#splash
{
position: absolute;
right: 16px;
background: #FFFFFF;
width: 288px;
height: 100px;
-moz-border-radius: 0 6px 6px 0;
-webkit-border-radius: 0 6px 6px 0;
}
#splash .logo {
padding-top: 15px;
width: 288px;
}
#splash .logo span {
margin-left: 10px;
font-weight: normal;
color: #656551;
font-size: 36px;
/* letter-spacing: -1px; */
line-height: 25px;
}
#splash .titre {
padding-top: 5px;
width: 288px;
height: 35px;
font-weight: normal;
color: #656551;
font-size: 18px;
letter-spacing: -1px;
line-height: 25px;
}
div#content {
margin: 1em 0;
margin-top: 120px;
}
div#content h2 {
margin-top: 0;
font-weight: normal;
color: #656551;
font-size: 18px;
letter-spacing: -1px;
line-height: 25px;
margin-bottom: 20px;
padding: 0 0 10px 0;
position: relative;
top: 4px;
background: url(../images/a22.gif) bottom repeat-x;
}
div#content ul {
padding-left: 2em;
}
div#content ul.logout-list {
padding-left: 0;
}
div#single-col {
margin: 10px 0 10px 25px;
padding: 0 30px 10px 0;
width: 576px;
}
div#left-col {
float: left;
margin: 10px 0 10px 25px;
padding: 0 50px 10px 0;
width: 235px;
border-right-style: solid;
border-color: #98bf21;
}
div#right-col {
float: right;
margin: 10px 0 10px 25px;
padding: 0 30px 10px 0;
width: 258px;
}
div.clear {
clear: both;
}
#footer
{
font-size: 70%;
position: relative;
clear: both;
height: 66px;
text-align: center;
line-height: 66px;
background-image: url(../images/a50.gif);
color: #A8A88D;
font-size: 12px;
}
#footer a
{
color: #8C8C73;
margin: 0 10px;
}
form#login-form p {
float: left;
width: 40%;
}
form#login-form input.submit {
float: right;
width: 18%;
margin-top: 30px;
}
div.login-actions {
clear: both;
padding-top: 1em;
}
div.login-actions p {
margin: 0;
}
div#login-actions ul {
padding-left: 1em;
}
div#login-actions ul li {
margin: 6px 0;
}
div#login-actions input.login {
border: 1px solid black;
padding: 1px;
background: #98bf21;
font-size: 1em;
font-weight: bold;
}
div#login-actions input.logout {
border: 1px solid black;
padding: 1px;
background: red;
font-size: 1em;
font-weight: bold;
}
form p {
margin: 0 0 1em 0;
}
form p label {
display: block;
}
form p input,
form p textarea {
margin-left: 0px;
width: 248px;
}
ul.messages {
margin: 0;
padding: 0;
list-style: none;
}
ul.messages li.error {
color: #e80404;
}
ul.errorlist {
margin: 0;
padding: 0;
color: #e80404;
list-style: none;
}
input, textarea {
padding: 5px;
border: 1px solid #cccccc;
color:#666666;
background: white;
color: black;
}
textarea:focus, input[type="text"]:focus, input[type="password"]:focus {
border: 1px solid #4690d6;
color:#333333;
}
input[type=submit] {
color: #ffffff;
background:#4690d6;
border: 1px solid #2a567f;
font-weight: bold;
padding: 1px 4px;
margin: 0 1px;
cursor: pointer;
float: right;
}
input[type=submit]:hover {
border-color: #0e1d2b;
}
form#login-form ul.errorlist {
margin-bottom: 1em;
width: 80%;
font-weight: normal;
}
/* OpenID Stuff */
#openid_btns, #openid_btns br {
clear: both;
}
#openid_highlight a {
border: 1px solid #888;
}
#openid_input_area input[type=submit] {
padding-top: 0;
margin-top: 0;
margin-left: 1em;
}
.openid_large_btn {
width: 100px;
height: 60px;
border: 1px solid #DDD;
margin: 3px;
float: left;
}
.openid_small_btn {
width: 24px;
height: 24px;
border: 1px solid #DDD;
margin: 3px;
float: left;
}
a.openid_large_btn:focus {
outline: none;
}
a.openid_large_btn:focus {
-moz-outline-style: none;
}
.openid_selected {
border: 4px solid #DDD;
}
#openid_input_area {
clear: both;
padding-top: 2.5em;
}
li.indented {
margin-left: 50px;
}
ul.NoBullet {
list-style-type: none;
}
div#content h4 {
margin-bottom: 5px;
margin-top: 30px;
}
div.errors {
margin: 0;
padding: 0;
color: #e80404;
list-style: none;
}
div#breadcrumb {
font-size: 80%;
margin-bottom: 1em;
}
div#user {
position: absolute;
clear: both;
top: 120px;
right: 15px;
margin: 0;
padding: 2px;
text-align: right;
}
div#content a#logout {
z-index: 10;
position: absolute;
top: 1em;
right: 10px;
border: 1px solid black;
padding: 2px;
background: red;
font-size: 1em;
font-weight: bold;
/* letter-spacing: -1px;
line-height: 25px; */
color: white;
text-decoration: none;
}
.ui-tabs .ui-tabs-hide {
display: none;
}
h4 {
padding-left: 0.5em;
}
h4 + div, div#profile {
padding-left: 1em;
}
li.item-invalid {
display: list-item;
list-style: disc;
line-height: 20px;
}
li.item-valid {
display: list-item;
list-style: url(/static/admin/img/icon_success.gif);
line-height: 20px;
}
.input-valid {
background: url(/static/admin/img/icon_success.gif) no-repeat 0 50%;
padding-left: 20px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 562 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -0,0 +1,86 @@
/* Copyright: Agence universitaire de la Francophonie - www.auf.org
* License: GNU Public License version 3
* Author: Jean Christophe André
* Inspired from http://www.webdesignerdepot.com/2012/01/password-strength-verification-with-jquery/
*/
function valid_pass1_criteria() {
var p = $('#id_new_password1').val()
return (p.length >= 8) && p.match(/[a-z]/) && p.match(/[A-Z]/) && p.match(/[0-9]/) && p.match(/[^a-zA-Z0-9]/) && !p.match(/[?*\"]/);
}
function valid_pass2_equals_pass1() {
var p = $('#id_new_password2').val()
var valid = ( (p != '') && (p == $('#id_new_password1').val()) );
$('label[for=id_new_password2]').toggleClass('input-valid', valid);
return valid;
}
$(document).ready(function() {
// bouton submit caché au départ
$('input[type=submit]').hide();
// validation du mot de passe
$('#id_new_password1').bind('keyup focus blur', function() {
var p = $(this).val();
var valid = true;
var valid2;
// longueur suffisante
if (p.length >= 8) {
$('#pw-critere-length').removeClass('item-invalid').addClass('item-valid');
} else {
$('#pw-critere-length').removeClass('item-valid').addClass('item-invalid');
valid = false;
}
// présence d'une minuscule
if (p.match(/[a-z]/)) {
$('#pw-critere-lower').removeClass('item-invalid').addClass('item-valid');
} else {
$('#pw-critere-lower').removeClass('item-valid').addClass('item-invalid');
valid = false;
}
// présence d'une majuscule
if (p.match(/[A-Z]/)) {
$('#pw-critere-upper').removeClass('item-invalid').addClass('item-valid');
} else {
$('#pw-critere-upper').removeClass('item-valid').addClass('item-invalid');
valid = false;
}
// présence d'un chiffre
if (p.match(/[0-9]/)) {
$('#pw-critere-digit').removeClass('item-invalid').addClass('item-valid');
} else {
$('#pw-critere-digit').removeClass('item-valid').addClass('item-invalid');
valid = false;
}
// présence d'un caractère spécial
if (p.match(/[^a-zA-Z0-9]/)) {
$('#pw-critere-special').removeClass('item-invalid').addClass('item-valid');
} else {
$('#pw-critere-special').removeClass('item-valid').addClass('item-invalid');
valid = false;
}
// absence de caractère invalide
if (p.match(/[?*\"]/)) {
$('#pw-critere-forbidden').removeClass('item-valid').addClass('item-invalid');
valid = false;
} else {
$('#pw-critere-forbidden').removeClass('item-invalid').addClass('item-valid');
}
// validation du champ complet
$('label[for=id_new_password1]').toggleClass('input-valid', valid);
// validation de l'égalité du second mot de passe
valid2 = valid_pass2_equals_pass1();
// affichage conditionnel du bouton submit
$('input[type=submit]').toggle(valid && valid2);
});
// validation du second mot de passe et gestion du bouton submit
$('#id_new_password2').bind('keyup focus blur', function() {
valid = valid_pass1_criteria();
// validation de l'égalité du second mot de passe
valid2 = valid_pass2_equals_pass1();
// affichage conditionnel du bouton submit
$('input[type=submit]').toggle(valid && valid2);
});
});

View File

@ -0,0 +1,12 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}Erreur côté serveur{% endblock %}
{% block content %}
<h2>Erreur côté serveur</h2>
<p>Nous sommes désolés mais il y a eu une erreur côté serveur.</p>
{% endblock %}

View File

@ -0,0 +1,6 @@
{% extends "base.html" %}
{% load i18n %}
{% block content %}
{% trans "Votre compte est maintenant activé" %}
{% endblock %}

View File

@ -0,0 +1,46 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}Connexion id.auf{% endblock %}
{% block content %}
{% if messages %}
<ul class="messages">
{% for message in messages %}
<li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% comment %}
<div id="tabs" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
<ul>
{% for name, content in methods %}
<li><a href="#tabs-{{ forloop.counter }}">{% trans name %}</a></li>
{% endfor %}
</ul>
{% endcomment %}
{% for name, content in methods %}
{% comment %}
<div id="tabs-{{ forloop.counter }}" class="ui-tabs-panel ui-widget-content ui-corner-bottom">
{% endcomment %}
{{ content|safe }}
{% comment %}
</div>
{% endcomment %}
{% endfor %}
{% comment %}
</div>
<script type="text/javascript">
$( "#tabs" ).tabs({cookie: {path: '/'}});
</script>
{% endcomment %}
{% endblock %}
{% block extra_scripts %}
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery.cookie.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery-ui.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery.simplemodal.js"></script>
{% endblock %}

View File

@ -0,0 +1,33 @@
{% load i18n sekizai_tags staticfiles %}
<h2>Connexion</h2>
<div>
<form method="post" action="">{% csrf_token %}
{{ form.non_field_errors }}
<p>
{{ form.username.errors }}
<label for="{{ form.username.id_for_label }}">{% trans "Nom d'utilisateur:" %}</label>
<input id="{{ form.username.id_for_label }}" type="text" name="{{ form.username.html_name }}"
autofocus="autofocus" autocorrect="off" autocapitalize="off" maxlength="255" spellcheck="false" autocomplete="off"/>
</p>
<p>
{{ form.password.errors }}
{{ form.password.label_tag }}
<input id="{{ form.password.id_for_label}}" type="password" autocorrect="off" autocapitalize="off" name="{{ form.password.html_name }}" spellcheck="false" autocomplete="off"/>
</p>
<input type="submit" name="{{ submit_name }}" value="{% trans "Se connecter" %}"/>
{% comment %}
{% if cancel %}
<input type="submit" name="cancel" value="Abandonner"/>
{% endif %}
{% endcomment %}
</form>
</div>
<div class="login-actions">
<p><a href="{% url 'auth_password_reset' %}">{% trans "Mot de passe oublié ?" %}</a></p>
{% comment %}
<p><a href="mailto:assistance-informatique@auf.org?subject=Mot de passe id.auf oublié">{% trans "Mot de passe oublié ?" %}</a></p>
{% endcomment %}
</div>
{% addtoblock "js-endpage" %}<script type="text/javascript" src="{% static "authentic2/js/js_seconds_until.js" %}"></script>{% endaddtoblock %}

View File

@ -0,0 +1,74 @@
{% extends "base.html" %}
{% load i18n %}
{% block extra_scripts %}
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery-pw-critere.js"></script>
{% endblock %}
{% block title %}
{% if set_password %}
Création d'un mot de passe
{% else %}
Changement de mot de passe
{% endif %}
{% endblock %}
{% load breadcrumbs %}
{% block breadcrumbs %}
{{ block.super }}
{% if set_password %}
{% breadcrumb_url 'Set password' auth_password_change %}
{% else %}
{% breadcrumb_url 'Change password' auth_password_change %}
{% endif %}
{% endblock %}
{% block contenthelp %}
<h2>Nouveau mot de passe</h2>
<p>Votre nouveau mot de passe id.auf doit contenir au minimum :</p>
<ul>
<li class="pw-critere-invalid" id="pw-critere-length">8 caractères</li>
<li class="pw-critere-invalid" id="pw-critere-lower">une minuscule</li>
<li class="pw-critere-invalid" id="pw-critere-upper">une majuscule</li>
<li class="pw-critere-invalid" id="pw-critere-digit">un chiffre</li>
<li class="pw-critere-invalid" id="pw-critere-special">un caractère spécial (!, ", £, &amp;, …)</li>
<li class="pw-critere-invalid" id="pw-critere-forbidden">aucun caractère interdit (?, *, ")</li>
</ul>
<p>Pour vous aider à choisir un bon mot de passe, rendez-vous sur <a href="https://id.auf.org/politique-de-mot-de-passe">la politique des mots de passe</a>.</p>
{% endblock %}
{% block content %}
{% if set_password %}
<h2>Création d'un mot de passe</h2>
<p>Bienvenue sur id.auf, vous allez maintenant créer votre mot de passe sécurisé.</p>
<p>Veuillez entrer un nouveau mot de passe et confirmer en le tapant une deuxième fois de façon identique.</p>
<form action="" method="post">{% csrf_token %}
{{ form.new_password1.errors }}
<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
{{ form.new_password2.errors }}
<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
<p><input type="submit" value="Créer mon mot de passe" /></p>
</form>
{% else %}
<h2>Changement de mot de passe</h2>
<p>Veuillez entrer votre ancien mot de passe pour contrôle de sécurité, puis entrer votre nouveau mot de passe et confirmer en le tapant une deuxième fois de façon identique.</p>
<form action="." method="post">{% csrf_token %}
{{ form.old_password.errors }}
<p class="aligned wide"><label for="id_old_password">Ancien mot de passe :</label>{{ form.old_password }}</p>
{{ form.new_password1.errors }}
<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
{{ form.new_password2.errors }}
<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
<p><input type="submit" value="Changer mon mot de passe" /></p>
</form>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,74 @@
{% load i18n sekizai_tags staticfiles %}<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="{% static "idauf_32.png" %}" />
<link rel="stylesheet" href="{% static "authentic2/css/style.css" %}" />
{% render_block "css" %}
<link rel="stylesheet" href="{% static "jquery/css/jquery-ui.custom.css" %}" />
<link rel="stylesheet" href="{% static "ulx/css/ulx.css" %}" />
<title>{% block title %}id.auf{% endblock %}</title>
{{ openid_meta }}
{% block extra_scripts %}
{% endblock %}
{% render_block "js" %}
</head>
<body {% block bodyargs %}{% endblock %} >
<div id="wrap" class="ui-corner-all">
<a href="http://www.auf.org/"><div id="header">
{% block header %}
<img width="152" height="100" src="{% static "Logo_Auf_FR.png" %}" />
{% endblock %}
</div></a>
<a href="/"><div id="splash">
<div class="logo">
<img width="48" height="48" src="{% static "idauf_48.png" %}" />
<span>id.auf</span>
</div>
<div class="titre">
<span>L'authentification unifiée de l'AUF</span>
</div>
</div></a>
<div id="content" class="ui-tabs ui-widget ui-widget-content ui-corner-all">
{% block contentdiv %}
<div id="left-col">
{% block contenthelp %}
<h2>Qu'est-ce que id.auf ?</h2>
<p>C'est votre nouvelle façon de vous connecter globalement à tous vos services de l'AUF.</p>
<p>Où que vous soyez et à partir de n'importe quel navigateur.</p>
<p><a href="/a-propos">En savoir plus sur id.auf</a></p>
{% comment %}
<p><br />Vous n'êtes pas inscrit à id.auf ?<br /><a href="{% url 'registration_register' %}">{% trans "Créer un compte" %}</a></p>
{% endcomment %}
{% endblock %}
</div>
<div id="right-col">
{% block content %}{% endblock %}
</div>
{% endblock %}
<div class="clear"></div>
</div>
<div id="footer">
{% block footer %}
<p>
<a href="/">Accueil</a>
| <a href="/a-propos">À propos d'id.auf</a>
{% if not request.user.username == '' %}
| <a href="{% url 'auth_password_change' %}">{% trans "Changement de mot de passe" %}</a>
{% endif %}
<!-- | <a href="/politique-de-mot-de-passe">Politique de mot de passe</a> --></p>
<p>Copyright © {% now "Y" %} AUF — Tous droits réservés</p>
{% endblock %}
</div>
</div> <!-- #wrap -->
{% render_block "js-endpage" %}
</body>
</html>

View File

@ -0,0 +1,92 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}id.auf{% endblock %}
{% block contenthelp %}
<h2>Bonjour {{ request.user.username }}</h2>
<p>Vous pouvez désormais accéder vos services qui utilisent l'authentification unifiée, sans avoir à vous reconnecter à chaque fois.</p>
<p>Vous n'avez qu'a vous rendre sur la page du service et id.auf se charge de vous authentifier.</p>
<p>Utilisez le bouton «&nbsp;Déconnexion&nbsp;» pour vous déconnecter globalement de tous vos services.</p>
{% endblock %}
{% block content %}
{% if not request.user.username == '' %}
<a id="logout" href="{% url 'auth_logout' %}">Déconnexion</a>
{% endif %}
{% if account_management %}
<!--
<p>
<a href="{% url 'account_management' %}">{% trans "Account Management" %}</a>
</p>
-->
{% endif %}
{% if authorized_services %}
<div id="login-actions">
<h2>Vos sites connectés</h2>
<ul>
{% comment %}
{% for service in authorized_services %}
{% if service.actions %}
<li>
<div class="actions">
{% for action in service.actions %}
<form action="{{ action.2 }}" method="{{ action.1 }}">
{% for key, value in action.3 %}
<input type="hidden" name="{{ key }}" value="{{ value }}" />
{% endfor %}
<input type="hidden" name="next" value="/"/>
<input type="submit" class="submit-link" value="{{ action.0 }}">
</form>
{% endfor %}
</div>
{% if service.url %}<a href="{{ service.url }}">{% endif %}{{ service.name }}{% if service.url %}</a>{% endif %}
</li>
{% endif %}
{% endfor %}
{% endcomment %}
{% comment %}
{% for service in authorized_services %}
{% if service.actions %}
<li>
<div class="actions">
{% for action in service.actions %}
<form action="{{ action.2 }}" method="{{ action.1 }}">
{% for key, value in action.3 %}
<input type="hidden" name="{{ key }}" value="{{ value }}" />
{% endfor %}
<input type="hidden" name="next" value="/"/>
{% if action.0 == 'login' %}<input type="submit" class="submit-link login" value="→">{% else %}
{% if user.is_staff %}
{% if action.0 == 'logout' %}<input type="submit" class="submit-link logout" value="X">{% else %}
<input type="submit" class="submit-link" value="{{ action.0 }}">{% endif %}
{% endif %}
{% endif %}
</form>
{% endfor %}
</div>
{% if service.url %}<a href="{{ service.url }}">{% endif %}{{ service.name }}{% if service.url %}</a>{% endif %}
</li>
{% endif %}
{% endfor %}
{% endcomment %}
{% for service in authorized_services %}
{% if service.actions %}
{% for action in service.actions %}
{% if action.0 == 'logout' %}<li>{{ service.name }}</li>{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}
{% if user.is_staff %}
<p id="administration-link"><a href="/admin">{% trans "Administration" %}</a></p>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,25 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}id.auf - Déconnexion des services…{% endblock %}
{% block bodyargs %}onload="setTimeout(function () { window.location='{{ next_page }}' }, {{ redir_timeout }})"{% endblock %}
{% block contenthelp %}
<h2>Déconnexion en cours !</h2>
<p>Nous établissons la communication avec les services sur lesquels vous étiez connecté(e)…</p>
<p>Vous serez redirigé(e) automatiquement vers la page demandée.</p>
{% endblock %}
{% block content %}
<h2>{% trans message %}</h2>
<ul class="logout-list">
{% for fragment in logout_list %}
{{ fragment|safe }}
{% endfor %}
</ul>
<p>Vous allez être redirigé(e) dans quelques instants…</p>
<div id="continue-link"><p>Encore là et plus rien ne bouge ? <a href="{{ next_page }}">{% trans "Cliquez ici" %}</a></p></div>
{% endblock %}

View File

@ -0,0 +1,51 @@
{% extends "base.html" %}
{% block contentdiv %}
<div id="single-col">
<h2>Politique de mot de passe</h2>
<p>Dans le but de protéger au mieux les accès à ses systèmes d'informations, la politique adoptée par l'Agence s'accorde à respecter certaines règles concernant les mots de passe.</p>
<h3>Votre mot de passe doit :</h3>
<ul>
<li>avoir une longueur minimale de 8 caractères ;</li>
<li>contenir au minimum une minuscule ;</li>
<li>contenir au minimum une majuscule ;</li>
<li>contenir au minimum un chiffre ;</li>
<li>contenir au minimum un caractère spécial (!, ", £, &amp;, …).</li>
</ul>
<h3>Votre mot de passe ne devrait pas :</h3>
<ul>
<li>être composé de mots du dictionnaire ;</li>
<li>ni de noms propres ;</li>
<li>ni de dates valides ;</li>
<li>ni de données personnelles.</li>
</ul>
<h3>Voici quelques bonnes habitudes d'utilisation à suivre :</h3>
<ul>
<li>ne jamais partager un compte utilisateur ;</li>
<li>ne jamais donner son mot de passe, même aux personnes chargées de la sécurité (ARI) ;</li>
<li>ne jamais écrire sur papier son mot de passe ;</li>
<li>ne jamais enregistrer son mot de passe dans le navigateur ;</li>
<li>ne jamais communiquer son mot de passe par téléphone, courriel ou messagerie instantanée ;</li>
<li>s'assurer de la déconnexion avant de quitter un poste ou activer l'écran de veille s'il est protégé par un mot de passe ;</li>
<li>changer régulièrement de mot de passe, tous les mois par exemple ;</li>
<li>changer le mot de passe au moindre soupçon de compromission.</li>
</ul>
<h3>Comment créer un mot de passe robuste et facile à retenir ?</h3>
<p>Utiliser des méthodes mnémotechniques, par exemple&nbsp;:</p>
<ul>
<li>
<p>Garder les premières lettres d'une phrase (citation, paroles de chanson, …) en veillant à ne pas utiliser que des minuscules.</p>
<p>Par exemple, la citation «&nbsp;un tiens vaut mieux que deux tu l'auras&nbsp;» deviendra 1TvmQ2tl'@</p>
</li>
<li>
<p>Utiliser les sons de chaque syllabe pour fabriquer une phrase facile à retenir.</p>
<p>Par exemple, la phrase «&nbsp;j'ai acheté huit cédés pour cent euros cet après-midi&nbsp;» deviendra ght8CD%E7am</p>
</li>
</ul>
</div>
{% endblock %}

View File

@ -0,0 +1,22 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Account activation" %}
{% endblock %}
{% block content %}
{% if account %}
<p>{% trans "Compte activé" %}</p>
<p><a href="{% url 'auth_login' %}">{% trans "Connexion" %}</a></p>
{% else %}
<p>{% trans "Échec d'activation du compte" %}</p>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,10 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Changing password" %}
{% endblock %}
{% block content %}
<p>{% trans "Mot de passe changé" %}</p>
{% endblock %}

View File

@ -0,0 +1,74 @@
{% extends "base.html" %}
{% load i18n %}
{% block extra_scripts %}
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery.js"></script>
<script type="text/javascript" src="{{ STATIC_URL }}jquery/js/jquery-pw-critere.js"></script>
{% endblock %}
{% block title %}
{% if set_password %}
Création d'un mot de passe
{% else %}
Changement de mot de passe
{% endif %}
{% endblock %}
{% load breadcrumbs %}
{% block breadcrumbs %}
{{ block.super }}
{% if set_password %}
{% breadcrumb_url 'Set password' auth_password_change %}
{% else %}
{% breadcrumb_url 'Change password' auth_password_change %}
{% endif %}
{% endblock %}
{% block contenthelp %}
<h2>Nouveau mot de passe</h2>
<p>Votre nouveau mot de passe id.auf doit contenir au minimum :</p>
<ul>
<li class="pw-critere-invalid" id="pw-critere-length">8 caractères</li>
<li class="pw-critere-invalid" id="pw-critere-lower">une minuscule</li>
<li class="pw-critere-invalid" id="pw-critere-upper">une majuscule</li>
<li class="pw-critere-invalid" id="pw-critere-digit">un chiffre</li>
<li class="pw-critere-invalid" id="pw-critere-special">un caractère spécial (!, ", £, &amp;, …)</li>
<li class="pw-critere-invalid" id="pw-critere-forbidden">aucun caractère interdit (?, *, ")</li>
</ul>
<p>Pour vous aider à choisir un bon mot de passe, rendez-vous sur <a href="https://id.auf.org/politique-de-mot-de-passe">la politique des mots de passe</a>.</p>
{% endblock %}
{% block content %}
{% if set_password %}
<h2>Création d'un mot de passe</h2>
<p>Bienvenue sur id.auf, vous allez maintenant créer votre mot de passe sécurisé.</p>
<p>Veuillez entrer un nouveau mot de passe et confirmer en le tapant une deuxième fois de façon identique.</p>
<form action="" method="post">{% csrf_token %}
{{ form.new_password1.errors }}
<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
{{ form.new_password2.errors }}
<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
<p><input type="submit" value="Créer mon mot de passe" /></p>
</form>
{% else %}
<h2>Changement de mot de passe</h2>
<p>Veuillez entrer votre ancien mot de passe pour contrôle de sécurité, puis entrer votre nouveau mot de passe et confirmer en le tapant une deuxième fois de façon identique.</p>
<form action="." method="post">{% csrf_token %}
{{ form.old_password.errors }}
<p class="aligned wide"><label for="id_old_password">Ancien mot de passe :</label>{{ form.old_password }}</p>
{{ form.new_password1.errors }}
<p class="aligned wide"><label for="id_new_password1">{% trans 'New password:' %}</label>{{ form.new_password1 }}</p>
{{ form.new_password2.errors }}
<p class="aligned wide"><label for="id_new_password2">{% trans 'Confirm password:' %}</label>{{ form.new_password2 }}</p>
<p><input type="submit" value="Changer mon mot de passe" /></p>
</form>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,14 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Password reset successfully" %}
{% endblock %}
{% block content %}
<p>{% trans "Mot de passe réinitialisé" %}</p>
<p><a href="{% url 'auth_login' %}">{% trans "Connexion" %}</a></p>
{% endblock %}

View File

@ -0,0 +1,24 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Resetting password" %}
{% endblock %}
{% block content %}
{% if validlink %}
<form method="post" action=".">
{{ form.as_p }}
<input type="submit" value="{% trans 'Envoi' %}" />
</form>
{% else %}
<p>{% trans "Échec de réinitialisation" %}</p>
{% endif %}
{% endblock %}

View File

@ -0,0 +1,11 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Resetting password" %}
{% endblock %}
{% block content %}
<p>{% trans "Un courriel avec les instruction de réinitialisation a été envoyé." %}</p>
{% endblock %}

View File

@ -0,0 +1,5 @@
{% load i18n %}
{% blocktrans %}Réinitialisation du mot de passe sur {{ site_name }}{% endblocktrans %}:
{% block reset_link %}
{{ protocol }}://{{ domain }}{% url 'auth_password_reset_confirm' uidb36=uid, token=token %}
{% endblock %}

View File

@ -0,0 +1,34 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Resetting password" %}
{% endblock %}
{% block contenthelp %}
<h2>Mot de passe oublié ?</h2>
<p>Rappelez-vous que votre mot de passe id.auf doit contenir au minimum :</p>
<ul>
<li>8 caractères</li>
<li>une minuscule</li>
<li>une majuscule</li>
<li>un chiffre</li>
<li>un caractère spécial (!, ", £, &amp;, ...)</li>
</ul>
{% endblock %}
{% block content %}
<h2>{% trans "Mot de passe perdu" %}</h2>
<p>Remplissez le formulaire ci-dessous pour vous permettre d'utiliser votre mot de passe Intranet/TSE pour votre prochaine connexion à id.auf.</p>
<p>Si vous avez également oublié votre mot de passe Intranet/TSE, contactez votre
responsable technique local pour qu'il vous aide à mettre un nouveau mot de passe en place.</p>
<form method="post" action=".">
{{ form.as_p }}
<input type="submit" value="{% trans 'Envoi' %}" />
</form>
{% endblock %}

View File

@ -0,0 +1,11 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Successful registration" %}
{% endblock %}
{% block content %}
<p>{% trans "Votre compte est maintenant créé. Un courriel d'activation a été envoyé." %}</p>
<p><a href="/">{% trans "Retour" %}<a/></p>
{% endblock %}

View File

@ -0,0 +1,23 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}
{% trans "Registration" %}
{% endblock %}
{% load breadcrumbs %}
{% block breadcrumbs %}
{{ block.super }}
{% breadcrumb_url 'Register' %}
{% endblock %}
{% block content %}
<h2>{% trans "Création de compte" %}</h2>
<form method="post" action=".">
{{ form.as_p }}
<input type="submit" value="{% trans 'Envoi' %}" />
</form>
{% endblock %}

View File

@ -0,0 +1,10 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}Réinitialisation du mot de passe effectuée{% endblock %}
{% block content %}
<h2>Mot de passe réinitialisé</h2>
<p>Votre mot de passe a bien été réinitialisé et est maintenant identique à votre mot de passe Intranet/TSE.</p>
<p>Vous pouvez donc maintenant utiliser ce mot de passe pour vous connecter sur id.auf et il vous sera redemandé d'en créer un nouveau.</p>
{% endblock %}

View File

@ -0,0 +1,32 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}Réinitialisation du mot de passe{% endblock %}
{% block contenthelp %}
<h2>Mot de passe oublié ?</h2>
<p>Rappelez-vous que votre mot de passe id.auf doit contenir au minimum :</p>
<ul>
<li>8 caractères</li>
<li>une minuscule</li>
<li>une majuscule</li>
<li>un chiffre</li>
<li>un caractère spécial (!, ", £, &amp;, ...)</li>
</ul>
{% endblock %}
{% block content %}
<h2>{% trans "Mot de passe perdu" %}</h2>
<p>Remplissez le formulaire ci-dessous pour vous permettre d'utiliser votre mot de passe Intranet/TSE pour votre prochaine connexion à id.auf.</p>
<p>Si vous avez également oublié votre mot de passe Intranet/TSE, contactez votre
responsable technique local pour qu'il vous aide à mettre en place un nouveau mot de passe.</p>
<form method="post" action="{% url 'reinitialisation_du_mot_de_passe' %}">
{{ form.as_p }}
<input type="submit" value="{% trans 'Envoi' %}" />
</form>
{% endblock %}

View File

@ -0,0 +1,33 @@
{% extends "base.html" %}
{% load i18n %}
{% block title %}id.auf - Connexion au service…{% endblock %}
{% block bodyargs %}onload="document.forms[0].submit()"{% endblock %}
{% block contenthelp %}
<h2>Connexion en cours !</h2>
<p>Nous établissons la communication avec le service…</p>
<p>Vous serez redirigé(e) automatiquement vers la page demandée.</p>
{% endblock %}
{% block content %}
<div class="post-redirect">
<h2>{{ title }}</h2>
<p>Vous allez être redirigé(e) dans quelques instants…</p>
<form action="{{url}}" method="post">
{% comment %}
<p>{% trans "You should be automatically redirected to the identity provider." %}</p>
<p>{% trans "If this page is still visible after a few seconds, press the Send button below." %}</p>
{% endcomment %}
<input type="hidden" name="{{ fieldname }}" value="{{ body }}" />
{% if relay_state %}
<input type="hidden" name="RelayState" value="{{ relay_state }}"/>
{% endif %}
<p>Encore là et plus rien ne bouge ?
<div class="buttons-bar">
<input type="submit" name="sendButton" value="{% trans 'Cliquez ici' %}" />
</div>
</p>
</form>
</div>
{% endblock %}