* Finish task #65551.

This commit is contained in:
liumengyi
2022-08-18 08:21:33 +08:00
parent fe898f9e20
commit a998967592
6 changed files with 15 additions and 15 deletions

View File

@@ -75,6 +75,7 @@ $lang->admin->safe->checkWeak = '弱口令扫描';
$lang->admin->safe->changeWeak = '修改弱口令密码';
$lang->admin->safe->loginCaptcha = '登录使用验证码';
$lang->admin->safe->modifyPasswordFirstLogin = '首次登录修改密码';
$lang->admin->safe->passwordStrengthWeak = '密码强度小于系统设置';
$lang->admin->safe->modeList[0] = '不检查';
$lang->admin->safe->modeList[1] = '中';

View File

@@ -234,13 +234,6 @@ class adminModel extends model
{
$weaks = array();
/* Check weak password when login. */
if($this->app->moduleName == 'user' and $this->app->methodName == 'login')
{
if(!isset($_POST['passwordStrength'])) return false;
if(isset($this->config->safe->mode) and $this->post->passwordStrength < $this->config->safe->mode) return true;
}
foreach(explode(',', $this->config->safe->weak) as $weak)
{
$weak = md5(trim($weak));

View File

@@ -162,7 +162,7 @@ $lang->install->account = '管理员帐号';
$lang->install->password = '管理员密码';
$lang->install->placeholder = new stdclass();
$lang->install->placeholder->password = '位及以上,包含数字、字母和特殊字符';
$lang->install->placeholder->password = '6位及以上,包含大小写字母,数字。';
$lang->install->errorEmpty['company'] = "{$lang->install->company}不能为空";
$lang->install->errorEmpty['account'] = "{$lang->install->account}不能为空";

View File

@@ -516,14 +516,13 @@ class installModel extends model
}
}
$this->loadModel('user');
$this->app->loadConfig('admin');
/* Check password. */
if(!validater::checkReg($this->post->password, '|(.){6,}|')) dao::$errors['password'][] = $this->lang->error->passwordrule;
if(isset($this->config->safe->mode) and (strlen($this->post->password) < $this->config->safe->mode)) dao::$errors['password'][] = $this->lang->user->weakPassword;
if(!empty($this->config->safe->changeWeak))
{
if(!isset($this->config->safe->weak)) $this->app->loadConfig('admin');
if(strpos(",{$this->config->safe->weak},", ",{$this->post->password},") !== false) dao::$errors['password'][] = sprintf($this->lang->user->errorWeak, $this->config->safe->weak);
}
if($this->user->computePasswordStrength($this->post->password) < 1) dao::$errors['password'][] = $this->lang->user->placeholder->passwordStrengthCheck[1];
if(!isset($this->config->safe->weak)) $this->app->loadConfig('admin');
if(strpos(",{$this->config->safe->weak},", ",{$this->post->password},") !== false) dao::$errors['password'] = sprintf($this->lang->user->errorWeak, $this->config->safe->weak);
if(dao::isError()) return false;
/* Insert a company. */

View File

@@ -54,8 +54,9 @@
<?php if(!empty($this->app->user->modifyPasswordReason)):?>
<?php $this->app->loadLang('admin');?>
<div class='alert alert-info'>
<?php $reason = $this->app->user->modifyPasswordReason;?>
<?php echo $lang->admin->safe->common . ' : ';?>
<?php echo $this->app->user->modifyPasswordReason == 'weak' ? $lang->admin->safe->changeWeak : $lang->admin->safe->modifyPasswordFirstLogin;?>
<?php echo $reason == 'weak' ? $lang->admin->safe->changeWeak : $lang->admin->safe->$reason;?>
</div>
<?php endif;?>
</form>

View File

@@ -920,6 +920,12 @@ class userModel extends model
$user->modifyPassword = $this->loadModel('admin')->checkWeak($user);
if($user->modifyPassword) $user->modifyPasswordReason = 'weak';
}
/* Check weak password when login. */
if(!$user->modifyPassword and $this->app->moduleName == 'user' and $this->app->methodName == 'login' and isset($_POST['passwordStrength']))
{
$user->modifyPassword = (isset($this->config->safe->mode) and $this->post->passwordStrength < $this->config->safe->mode);
if($user->modifyPassword) $user->modifyPasswordReason = 'passwordStrengthWeak';
}
/* code for bug #2729. */
if(defined('IN_USE')) $this->dao->update(TABLE_USER)->set('visits = visits + 1')->set('ip')->eq($ip)->set('last')->eq($last)->where('account')->eq($account)->exec();