40 lines
1.6 KiB
PHP
40 lines
1.6 KiB
PHP
<?php
|
|
|
|
if (!isset($_POST['delete']))
|
|
output(403, _('Account deletion must be confirmed.'));
|
|
|
|
$user_services = explode(',', query('select', 'users', ['username' => $_SESSION['id']], 'services')[0]);
|
|
|
|
foreach (SERVICES_USER as $service)
|
|
if (in_array($service, $user_services, true) AND CONF['common']['services'][$service] !== 'enabled')
|
|
output(503, sprintf(_('Your account can\'t be deleted because the %s service is currently unavailable.'), '<em>' . PAGES[$service]['index']['title'] . '</em>'));
|
|
|
|
if (in_array('reg', $user_services, true))
|
|
foreach (query('select', 'registry', ['username' => $_SESSION['id']], 'domain') as $domain)
|
|
regDeleteDomain($domain);
|
|
|
|
if (in_array('ns', $user_services, true))
|
|
foreach (query('select', 'zones', ['username' => $_SESSION['id']], 'zone') as $zone)
|
|
nsDeleteZone($zone);
|
|
|
|
if (in_array('ht', $user_services, true)) {
|
|
foreach (query('select', 'sites', ['username' => $_SESSION['id']]) as $site)
|
|
htDeleteSite($site['address'], $site['type']);
|
|
|
|
exec(CONF['ht']['sudo_path'] . ' -u ' . CONF['ht']['tor_user'] . ' ' . CONF['ht']['rm_path'] . ' --recursive ' . CONF['ht']['tor_keys_path'] . '/' . $_SESSION['id'], result_code: $code);
|
|
if ($code !== 0)
|
|
output(500, 'Can\'t remove Tor keys directory.');
|
|
|
|
removeDirectory(CONF['ht']['tor_config_path'] . '/' . $_SESSION['id']);
|
|
|
|
exec(CONF['ht']['sudo_path'] . ' -u ' . CONF['ht']['sftpgo_user'] . ' ' . CONF['ht']['rm_path'] . ' --recursive ' . CONF['ht']['ht_path'] . '/' . $_SESSION['id'], result_code: $code);
|
|
if ($code !== 0)
|
|
output(500, 'Can\'t remove user\'s directory.');
|
|
}
|
|
|
|
query('delete', 'users', ['id' => $_SESSION['id']]);
|
|
|
|
logout();
|
|
|
|
output(200, _('Account deleted.'));
|