* user: refactor the reset method and page.

This commit is contained in:
liugang
2023-11-28 13:11:50 +08:00
parent 87c16634d7
commit ccde500d03
2 changed files with 21 additions and 21 deletions
+14 -9
View File
@@ -801,6 +801,7 @@ class user extends control
}
/**
* 重置密码。
* Reset password.
*
* @access public
@@ -813,29 +814,33 @@ class user extends control
$resetFileName = $this->app->getBasePath() . 'tmp' . DIRECTORY_SEPARATOR . uniqid('reset_') . '.txt';
$this->session->set('resetFileName', $resetFileName);
}
$resetFileName = $this->session->resetFileName;
$needCreateFile = false;
if(!file_exists($resetFileName) or (time() - filemtime($resetFileName)) > 60 * 2) $needCreateFile = true;
$resetFileName = $this->session->resetFileName;
$needCreateFile = !file_exists($resetFileName) || (time() - filemtime($resetFileName)) > 60 * 2;
if($_POST)
{
if($needCreateFile) return $this->send(array('result' => 'success', 'load' => true));
$result = $this->user->resetPassword();
$user = form::data($this->config->user->form->reset)
->setIF($this->post->password1 != false, 'password', substr($this->post->password1, 0, 32))
->get();
$this->userZen->checkPassword($user);
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
$result = $this->user->resetPassword($user);
if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError()));
if(!$result) return $this->send(array('result' => 'fail', 'message' => $this->lang->user->resetFail));
$referer = helper::safe64Encode($this->createLink('index', 'index'));
return $this->send(array('result' => 'success', 'message' => $this->lang->user->resetSuccess, 'locate' => $this->createLink('user', 'logout', 'referer=' . $referer)));
return $this->send(array('result' => 'success', 'message' => $this->lang->user->resetSuccess, 'locate' => inlink('logout', 'referer=' . $referer)));
}
/* Remove the real path for security reason. */
/* 移除真实路径以确保安全。*/
/* Remove the real path to ensure security. */
$resetFileName = str_replace($this->app->getBasePath(), '', $resetFileName);
$this->view->title = $this->lang->user->resetPassword;
$this->view->status = 'reset';
$this->view->rand = $this->user->updateSessionRandom();
$this->view->needCreateFile = $needCreateFile;
$this->view->resetFileName = $resetFileName;
+7 -12
View File
@@ -47,6 +47,8 @@ $content = $needCreateFile ? div
(
setClass('reset-form w-full'),
set::title($lang->user->resetPassword),
on::change('#password1,#password2', 'changePassword'),
on::click('button[type=submit]', 'encryptPassword'),
formRow
(
formGroup
@@ -69,7 +71,7 @@ $content = $needCreateFile ? div
(
formGroup
(
set::label($lang->user->password2),
set::label($lang->user->abbr->password2),
set::control('password'),
set::name('password2'),
set::required(true)
@@ -78,18 +80,11 @@ $content = $needCreateFile ? div
formRow
(
setClass('hidden'),
formGroup
(
set::name('passwordLength'),
set::value(0)
),
formGroup
(
set::name('verifyRand'),
set::value($rand)
)
input(set::name('passwordLength'), set::value(0)),
input(set::name('passwordStrength'), set::value(0))
)
)
),
formHidden('verifyRand', $rand)
);
set::zui(true);