Import initial de Vivier depuis l'hebergement OVH

This commit is contained in:
Yann PILLA committed 2026-10-16 21:52:44 +02:00
commit 839e5e57c5
126 files changed
+22447

No files matched your search

+53
View File
@@ -0,0 +1,53 @@
<?php
/*
* Activation de la double authentification : à la première connexion, ou depuis Mon compte (nouveau téléphone).
* Variables : $cle (clé en base32), $adresse (otpauth://), $erreur, $connecte.
*/
$etapes = static function () use ($cle, $adresse, $erreur, $connecte): void { ?>
<ol class="etapes-2fa">
<li>
<strong><?= e(t('Installez une application d\'authentification sur votre téléphone.')) ?></strong>
<span><?= e(t('Google Authenticator, Microsoft Authenticator ou le gestionnaire de mots de passe que vous utilisez déjà (Bitwarden, 1Password, Mots de passe d\'Apple).')) ?></span>
</li>
<li>
<strong><?= e(t('Dans l\'application, ajoutez un compte et scannez ce QR code.')) ?></strong>
<span class="qr" data-qr="<?= e($adresse) ?>" role="img" aria-label="<?= e(t('QR code à scanner')) ?>"></span>
<span><?= e(t('Pas de QR code ? Saisissez cette clé à la main, en type « basé sur l\'heure » :')) ?></span>
<code class="cle-2fa"><?= e(Totp::lisible($cle)) ?></code>
</li>
<li>
<strong><?= e(t('Saisissez le code à 6 chiffres que l\'application affiche.')) ?></strong>
<form method="post" action="<?= e(url('double_authentification')) ?>" class="pile">
<?= champ_csrf() ?>
<?php if ($erreur): ?><p class="flash flash-erreur" role="alert"><?= e($erreur) ?></p><?php endif; ?>
<label><?= e(t('Code')) ?>
<input type="text" name="code" required autocomplete="one-time-code" inputmode="numeric" maxlength="7" class="code-saisie" placeholder="123456" spellcheck="false">
</label>
<?php if ($connecte): ?>
<label><?= e(t('Votre mot de passe')) ?>
<input type="password" name="mot_de_passe" required autocomplete="current-password">
</label>
<?php endif; ?>
<button type="submit"><?= e(t('Activer')) ?></button>
</form>
</li>
</ol>
<?php };
?>
<?php if ($connecte): ?>
<p class="fil"><a href="<?= e(url('compte')) ?>"><?= e(t('Mon compte')) ?></a> / <?= e(t('Double authentification')) ?></p>
<section class="carte moyen">
<h1><?= e(t('Configurer une autre application')) ?></h1>
<p class="aide"><?= e(t('Nouveau téléphone ou nouvelle application : l\'ancienne cessera de fonctionner dès que celle-ci sera activée. Vos autres sessions seront fermées et vous recevrez dix nouveaux codes de secours.')) ?></p>
<?php $etapes(); ?>
</section>
<?php else: ?>
<div class="porte porte-large">
<img src="assets/logo-itclub-or.png" alt="<?= e(t('IT Club')) ?>" width="224" height="70">
<p class="porte-nom"><?= e(config('nom_app')) ?></p>
<p class="porte-role"><?= e(t('Dernière étape : la double authentification. À chaque connexion, Vivier vous demandera votre mot de passe puis un code de votre téléphone.')) ?></p>
<?php $etapes(); ?>
<p class="porte-lien"><a href="<?= e(url('securite')) ?>" target="_blank" rel="noopener"><?= e(t('Pourquoi cette étape ?')) ?></a></p>
</div>
<?php endif; ?>
<script src="assets/qrcode.js?v=1.8" defer></script>