Восстановление пароля администратора vTiger CRM
Сегодня будем рассматривать простое восстановление пароля для администратора vTiger CRM. Действительно, иногда может случится и такая ситуация. Так как вы являетесь администратором системы, то у вас должен быть доступ к серверу, где размещена данная CRM. Необходимо будет создать простенький файл и закачать в корень сервера.
Содержимое файла newPassword.php:
<?php /** * Восстановление пароля vTiger CRM * * ВНИМАНИЕ! После изменения пароля данным скриптом, * его необходимо удалить! Иначе, возможна угроза безопасности * и потеря доступа над всей системой. * * @author Denis Sitko * @site sitkodenis.ru */ require_once 'include/utils/utils.php'; require_once 'include/utils/VtlibUtils.php'; require_once 'modules/Vtiger/helpers/ShortURL.php'; global $adb; $adb = PearDatabase::getInstance(); /** * Необходимо заполнить своими значениями * @var $username Логин администратора * @var $email Эл. почта администратора */ $username = vtlib_purify('admin'); $email = vtlib_purify('admin@vtiger6.loc'); $time = time(); $options = array( 'handler_path' => 'modules/Users/handlers/ForgotPassword.php', 'handler_class' => 'Users_ForgotPassword_Handler', 'handler_function' => 'changePassword', 'handler_data' => array( 'username' => $username, 'email' => $email, 'time' => $time, 'hash' => md5($username . $time) ) ); $trackURL = Vtiger_ShortURL_Helper::generateURL($options); $body = <<<HTML <h1>Восстановление пароля</h1> <p>Для восстановление утерянного пароля необходимо перейти по ссылке ниже:</p> <a href="$trackURL">$trackURL</a> <p style="color: #ff0000;">Внимание! После изменения пароля не забудьте удалить данный файл!</p> HTML; echo $body;
Не забудьте изменить значения переменных $username и $email на ваши.
Здесь используются стандартные возможности восстановления пароля системой.
Да, конечно можно было бы восстановить пароль через ссылку «Восстановить пароль» в форме авторизации. Но, так получилось что у меня на сервере еще не была настроена отправка почты, которая использует SMTP протокол. Получается, необходимо было бы в настройках базы данных сначала прописать все, т.к. восстановление работает только с отправкой по электронной почте сгенерированной ссылки.
Еще вариант — зайти в таблицу vtiger_users и вручную исправить пароль и хеш. Но, если хеш генерируется просто, то вот с паролем чуть сложнее, т.к. в него добавляется соль (она тоже генерируется определенным образом).
Вот и все. Таким образом можно изменить любой пароль для любого пользователя. Не забудьте удалить файл newPassword.php, расположенный в корне сервера. А то вдруг случайно зайдет какой-нибудь работник и начнет баловаться
Прикладываю ссылку на готовый файл: newPassword.php