servnest/public/auth/unregister.php

50 lines
1.6 KiB
PHP

<?php require "../../common/html.php"; ?>
<form method="post">
<input type="checkbox" name="delete" id="delete">
<label for="delete">Supprimer mon compte et toutes ses données</label>
<br>
<input type="submit">
</form>
<?php
switchToFormProcess();
if (!isset($_POST['delete']))
userError("Il faut confirmer la suppression du compte");
foreach (query('select', 'registry', ['username' => $_SESSION['username']], 'domain') as $domain)
regDeleteDomain($domain);
foreach (query('select', 'zones', ['username' => $_SESSION['username']], 'zone') as $zone)
nsDeleteZone($zone);
foreach (query('select', 'sites', [
'username' => $_SESSION['username'],
'domain_type' => 'onion',
'protocol' => 'http',
], 'site_dir') as $dir)
htDeleteSite($dir, domainType: 'onion', protocol: 'http');
foreach (query('select', 'sites', [
'username' => $_SESSION['username'],
'domain_type' => 'dns',
'protocol' => 'http',
], 'site_dir') as $dir)
htDeleteSite($dir, domainType: 'dns', protocol: 'http');
// PHP rmdir() only works on empty directories
$dirObj = new RecursiveDirectoryIterator(CONF['ht']['ht_path'] . "/" . $_SESSION['username'], RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($dirObj, RecursiveIteratorIterator::CHILD_FIRST);
foreach ($files as $path)
$path->isDir() && !$path->isLink() ? rmdir($path->getPathname()) : unlink($path->getPathname());
if (rmdir(CONF['ht']['ht_path'] . '/' . $_SESSION['username']) !== true)
serverError("Unable to delete user's hypertext directory.");
query('delete', 'users', ['username' => $_SESSION['username']]);
redir();
success("Compte supprimé.");