servnest/pages/auth/approval.php

38 lines
1.2 KiB
PHP

<?php
insert('approval-keys', ['key' => bin2hex(random_bytes(16))]);
if (processForm()) {
if ($_SESSION['type'] !== 'testing')
output(403, 'Approbation impossible : votre compte est déjà approuvé.');
if (isset(query('select', 'approval-keys', ['key' => $_POST['key']], 'key')[0]) !== true)
output(403, 'Approbation impossible : cette clé d\'approbation n\'est pas disponible. Elle a été mal saisie, a expiré ou a déjà été utilisée pour un autre compte.');
query('delete', 'approval-keys', ['key' => $_POST['key']]);
$stmt = DB->prepare('UPDATE users SET type = "approved" WHERE id = :id');
$stmt->bindValue(':id', $_SESSION['id']);
$stmt->execute();
$_SESSION['type'] = 'approved';
insert('approval-keys', ['key' => bin2hex(random_bytes(16))]);
output(200, 'Compte approuvé.');
}
?>
<p>
Ce formulaire permet d'utiliser une clé d'approbation pour valider son compte. Une clé d'approbation est distribuée par l'administrataire sur demande.
</p>
<form method="post">
<label for="key">Clé d'approbation</label><br>
<input required="" id="key" size="33" name="key" type="text" placeholder="27b81fbd8277b11ed1cf03d476cec503">
<br>
<input type="submit" value="Utiliser">
</form>