38 lines
1.2 KiB
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>
|