Администраторы группы

  • Аватар

Модераторы группы

  • Аватар

Использование Vtiger CRM

Открытая группа активность: 1 дн., 13 ч. назад

Обсуждения функциональности, особенностей установки и настройки системы SalesPlatform Vtiger CRM.

6.5 Клиентский портал – сменить пароль [РЕШЕНО] (записей: 6)

← Форум группы   Все форумы
  • Аватар Андрей Леонтьев - 8 мес., 1 нед. назад:

    Добрый день!

    Подскажите пожалуйста какие могут быть предприняты действия, кроме того чтобы менять пароль непосредственно через mysql, если пользователь портала забыл свой пароль?

    Я так понимаю ссылка supportpage.php?param=forgot_password не работает?

  • Аватар Алексей Зозуля - 8 мес., 1 нед. назад:

    Изменить в CRM e-mail Контакта на несуществующий, например, приписать 1 в конце, сохранить, затем вернуть прежний, сохранить. Контакту придет письмо с новым паролем.

  • Аватар Андрей Леонтьев - 8 мес., 1 нед. назад:

    Воистину лайфхак!

  • Аватар MaksSP - 5 мес., 1 нед. назад:

    При запросе смены пароля через /supportpage.php?param=forgot_password приходят вместо пароля звездочки
    vtiger 6.5
    customerportal 6.4

  • Аватар Владимир - 3 мес., 3 нед. назад:

    Есть бесплатный модуль:
    http://www.its4you.sk/en/vtiger-extensions/free/reset-customer-portal-password

  • Аватар Алексей - 1 мес., 3 нед. назад:

    Бесплатный модуль хорошо, но все таки костыль! Оригинальное решение попроще. Ну и без участия менеджера клиент с ним сам может сменить. Дело в том, что начиная с версии 6.5. Втайгер хранит пароли пользователей портала зашифрованном виде. А на этот случай процедура отправки пароля не доделана. В ней просто присваются паролю звездочки. А пароль так и лежит в базе зашифрованный.
    Нашел решение с паролем, вместо которого приходят звездочки пользователю клиентского портала.
    В версии 7.0 (и кажется, начиная с 6.5) пароли хранятся в зашифрованном виде. А строка if (!empty($adb->query_result($res, 0, ‘cryptmode’))) как раз и проверяет, не хранится ли он в зашифрованном виде. Показывает, что да, и пытается выполнить блок когда, который еще не доработан.
    Вот здесь предложили свое решение. Которое создает и шифрует здесь же новый пароль.
    https://discussions.vtiger.com/index.php?p=/discussion/182071/customer-portal-password-reset-sends-/p1

    в файле soap/customerportal.php line 1140 заменить код:
    **********************************

    if (!empty($adb->query_result($res, 0, ‘cryptmode’))) {
    $password = ‘*****’;
    // TODO – we need to send link to reset the password
    // For now CRM user can do the same.
    }

    $portalId= $adb->query_result($res,0,’id’);
    // We no longer have the original password!
    if (!empty($adb->query_result($res, 0, ‘cryptmode’))) {

    $password = makeRandomPassword();
    $enc_password = Vtiger_Functions::generateEncryptedPassword($password);
    $updateDownloadCount = «UPDATE vtiger_portalinfo SET user_password = ? WHERE id = ?»;
    $countres = $adb->pquery($updateDownloadCount,array($enc_password,$portalId));

    // $password = ‘*****’;
    // TODO – we need to send link to reset the password
    // For now CRM user can do the same.
    }

    Но правда я обошелся без новой переменной $portalId а вставил вместо нее $mailid. Ну и в запросе в условии отбора вместо ‘ …WHERE id =…’ написал ‘…WHERE user_name = ?’. Не знаю, может ли пользователь потом поменять свой адрес на какой-нибудь юзернем. Но пока должно работать.