mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
114 lines
3.4 KiB
PHP
114 lines
3.4 KiB
PHP
<?php
|
|
|
|
set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
|
|
|
|
include_once("aur.inc.php"); # access AUR common functions
|
|
|
|
set_lang(); # this sets up the visitor's language
|
|
check_sid(); # see if they're still logged in
|
|
|
|
if (isset($_COOKIE["AURSID"])) {
|
|
header('Location: /');
|
|
exit();
|
|
}
|
|
|
|
$error = '';
|
|
|
|
if (isset($_GET['resetkey'], $_POST['email'], $_POST['password'], $_POST['confirm'])) {
|
|
$resetkey = $_GET['resetkey'];
|
|
$email = $_POST['email'];
|
|
$password = $_POST['password'];
|
|
$confirm = $_POST['confirm'];
|
|
$uid = uid_from_email($email);
|
|
|
|
if (empty($email) || empty($password)) {
|
|
$error = __('Missing a required field.');
|
|
} elseif ($password != $confirm) {
|
|
$error = __('Password fields do not match.');
|
|
} elseif (!good_passwd($password)) {
|
|
$length_min = config_get_int('options', 'passwd_min_len');
|
|
$error = __("Your password must be at least %s characters.",
|
|
$length_min);
|
|
} elseif ($uid == null) {
|
|
$error = __('Invalid e-mail.');
|
|
}
|
|
|
|
if (empty($error)) {
|
|
$salt = generate_salt();
|
|
$hash = salted_hash($password, $salt);
|
|
|
|
$error = password_reset($hash, $salt, $resetkey, $email);
|
|
}
|
|
} elseif (isset($_POST['email'])) {
|
|
$email = $_POST['email'];
|
|
$username = username_from_id(uid_from_email($email));
|
|
|
|
if (empty($email)) {
|
|
$error = __('Missing a required field.');
|
|
} else {
|
|
$subject = 'AUR Password Reset';
|
|
$body = __('A password reset request was submitted for the ' .
|
|
'account %s associated with your e-mail address. ' .
|
|
'If you wish to reset your password follow the ' .
|
|
'link below, otherwise ignore this message and ' .
|
|
'nothing will happen.', $username);
|
|
send_resetkey($email, $subject, $body);
|
|
|
|
header('Location: ' . get_uri('/passreset/') . '?step=confirm');
|
|
exit();
|
|
}
|
|
}
|
|
|
|
$step = isset($_GET['step']) ? $_GET['step'] : NULL;
|
|
|
|
html_header(__("Password Reset"));
|
|
|
|
?>
|
|
|
|
<div class="box">
|
|
<h2><?= __("Password Reset"); ?></h2>
|
|
|
|
<?php if ($step == 'confirm'): ?>
|
|
<p><?= __('Check your e-mail for the confirmation link.') ?></p>
|
|
<?php elseif ($step == 'complete'): ?>
|
|
<p><?= __('Your password has been reset successfully.') ?></p>
|
|
<?php elseif (isset($_GET['resetkey'])): ?>
|
|
<?php if ($error): ?>
|
|
<ul class="errorlist"><li><?= $error ?></li></ul>
|
|
<?php endif; ?>
|
|
<form action="" method="post">
|
|
<table>
|
|
<tr>
|
|
<td><?= __("Confirm your e-mail address:"); ?></td>
|
|
<td><input type="text" name="email" size="30" maxlength="64" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td><?= __("Enter your new password:"); ?></td>
|
|
<td><input type="password" name="password" size="30" /></td>
|
|
</tr>
|
|
<tr>
|
|
<td><?= __("Confirm your new password:"); ?></td>
|
|
<td><input type="password" name="confirm" size="30" /></td>
|
|
</tr>
|
|
</table>
|
|
<br />
|
|
<input type="submit" class="button" value="<?= __('Continue') ?>" />
|
|
</form>
|
|
<?php else: ?>
|
|
<p><?= __('If you have forgotten the e-mail address you used to register, please send a message to the %saur-general%s mailing list.',
|
|
'<a href="https://mailman.archlinux.org/mailman/listinfo/aur-general">',
|
|
'</a>'); ?></p>
|
|
<?php if ($error): ?>
|
|
<ul class="errorlist"><li><?= $error ?></li></ul>
|
|
<?php endif; ?>
|
|
<form action="" method="post">
|
|
<p><?= __("Enter your e-mail address:"); ?>
|
|
<input type="text" name="email" size="30" maxlength="64" /></p>
|
|
<input type="submit" class="button" value="<?= __('Continue') ?>" />
|
|
</form>
|
|
<?php endif; ?>
|
|
</div>
|
|
|
|
<?php
|
|
|
|
html_footer(AURWEB_VERSION);
|