Восстановление пароля администратора 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, расположенный в корне сервера. А то вдруг случайно зайдет какой-нибудь работник и начнет баловаться  laugh

Прикладываю ссылку на готовый файл: newPassword.php

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: