<?php
/**
* Изменение пароля пользователя admin
*
* Порядок использования:
* 1) Загрузите файл https://www.hostcms.ru/download/install/restore_password.php
* 2) Разместите файл restore_password.php в корне сайта и вызовите http://адрес_сайта/restore_password.php
* 3) Запомните выведенные логин и пароль.
*
* УДАЛЕНИЕ ФАЙЛА:
* После выполнения файл пытается удалиться самостоятельно, если этого не произошло,
* удалите файл restore_password.php с сайта вручную.
*/
require_once('bootstrap.php');
$aMessages = array();
$login = Core_Array::getPost('login', '', 'trim');
if (Core_Array::getPost('apply'))
{
if ($login != '')
{
$oUser = Core_Entity::factory('User')->getByLogin($login);
if ($oUser)
{
$password = Core_Password::get();
$oUser->password = Core_Hash::instance()->hash($password);
if (isset($oUser->active))
{
$oUser->active = 1;
}
$oUser->save();
$aMessages['success'][] = 'New login is: <b>' . htmlspecialchars($login) . '</b>';
$aMessages['success'][] = 'New password is: <b>' . htmlspecialchars($password) . '</b>';
}
else
{
$aMessages['danger'][] = 'User ' . htmlspecialchars($login) . ' not found';
}
}
else
{
$aMessages['danger'][] = 'Users not found!';
}
Core_File::delete(CMS_FOLDER . 'restore_password.php');
}
$aUserOptions = array();
$oUsers = Core_Entity::factory('User');
$oUsers->queryBuilder()
->where('users.active', '=', 1)
->clearOrderBy()
->orderBy('users.login');
isset($oUsers->dismissed) && $oUsers->queryBuilder()
->where('users.dismissed', '=', 0);
$aUsers = $oUsers->findAll(FALSE);
foreach ($aUsers as $oUser)
{
$aUserOptions[] = $oUser->login;
}
?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<title>Restore Password</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<style>
.margin-top-10 { margin-top: 10px !important; }
</style>
</head>
<body>
<div class="container">
<form class="form-inline margin-top-10" action="restore_password.php" method="POST">
<div class="row">
<div class="col-xs-2">
<!-- <div class="form-group"> -->
<select name="login" class="form-control">
<?php
foreach ($aUserOptions as $name)
{
$selected = $name == $login
? ' selected="selected"'
: '';
?><option <?php echo $selected?> value="<?php echo $name?>"><?php echo htmlspecialchars($name)?></option><?php
}
?>
</select>
<!-- </div> -->
</div>
<div class="col-xs-10">
<button type="submit" name="apply" value="apply" class="btn btn-info">Сбросить пароль</button>
</div>
</div>
</form>
<?php
foreach ($aMessages as $status => $aMessage)
{
foreach ($aMessage as $sMessage)
{
?><div class="alert alert-<?php echo $status?> margin-top-10" role="alert"><?php echo $sMessage?></div><?php
}
}
?>
</div>
</body>
</html>