info);
$email = new Email($u->info);
$status = null;
if ($_POST['removetotp']) {
// Удаление ключа ТОТР
$u->info['totp'] = '';
Db::sql('update users set totp = ? where id = ?', [$u->info['totp'], $u->info['id']]);
$status = "Секретный ключ удалён.
";
}
if ($_POST['newtotp']) {
// Создание ключа ТОТР
$u->info['totp'] = TOTP::otpSecret($u->info['id']);
Db::sql('update users set totp = ? where id = ?', [$u->info['totp'], $u->info['id']]);
$status = "Секретный ключ создан.
";
}
if (
(
$_POST['oldpass'] && $_POST['npass'] && $_POST['npass2'] ||
$_POST['oldpsw'] && $_POST['oldemail'] && $_POST['newemail']
) &&
$u->info['securetime'] > time()
) {
$status = "Должно пройти не менее трех суток между сменой подтверждения, пароля или email.
";
} else {
if ($_POST['oldpass'] && $_POST['npass'] && $_POST['npass2']) { /*-------Смена пароля--------*/
if (!password_verify($_POST['oldpass'], $u->info['pass'])) {
$status = "Неверный старый пароль.
";
} elseif ($_POST['npass'] !== $_POST['npass2']) {
$status = "Не совпадают новые пароли.
";
} else {
$u->info['pass'] = $password->changeFirst($_POST['oldpass'], $_POST['npass']);
$status = "Пароль удачно сменен.
";
}
}
if ($_POST['oldpsw'] && $_POST['oldemail'] && $_POST['newemail']) { /*-----Смена e-mail------*/
if (password_verify($_POST['oldpsw'], $u->info['pass'])) {
$status = "Неверный пароль.
";
} elseif ($u->info['mail'] !== $_POST['oldemail']) {
$status = "Неверный старый E-Mail.
";
} else {
$u->info['mail'] = $email->change($_POST['oldemail'], $_POST['newemail']);
$status = "Email удачно сменен.
";
}
}
}
?>