• Ограничение попыток восстановления пароля Друпал 7?

    niremizov
    @niremizov
    CEO, предприниматель
    Да, в Drupal 7 такой настройки нет и модуля тоже, но есть патч или можно сделать свой модуль.

    1) Патч https://www.drupal.org/project/drupal/issues/3074666
    1.1) После применения патча добавляем в самый конец файла /sites/default/settings.php строку, в которой указываем кол-во допустимых попыток:

    $conf['user_pass_reset_user_limit'] = 3;

    2) Свой модуль
    2.1) Подготавливаем файлы для своего модуля xandeadx.ru/blog/drupal/256
    2.2) Добавляем ограничение на форму восстановления пароля. Код можно взять отсюда https://www.drupal.org/project/drupal/issues/1681832

    // xyz - название Вашего модуля
    function xyz_user_pass_form_validate($form, $form_state){
      // Тут 3 - это кол-во допустимых запросов за 86400 секунд.
      if(!flood_is_allowed('request new password', 3, 86400, $form_state['values']['name'])){
        form_set_error('name', 'Reset password limit exceeded.  Please contact technical support for further assistance.');
    	flood_register_event('request new password', 86400, $form_state['values']['name']);
      } else {
        flood_register_event('request new password', 86400, $form_state['values']['name']);
      }
    }
    
    hook_form_user_pass_alter($form){
      array_unshift($form['#validate'], 'xyz_user_pass_form_validate');
    }
    Ответ написан
    1 комментарий