Бага в ldap_auth

Главные вкладки

Аватар пользователя dimedrol dimedrol 12 сентября 2008 в 8:11

При установке и настройке ldap_auth обнаружил следующий баг в форме параметров (admin/settings/ldapauth) - не сохранялись данные в БД.

Использую версию модуля 6.x-1.0-alpha2

Пришлось покапаться в кодах модуля. Нашел функцию, которая делает сохранение параметров в базу в таблицу variable (файл ldapauth.admin.inc, форма ldapauth_admin_settings, функция ldapauth_admin_settings_submit)

function ldapauth_admin_settings_submit($form, &$form_state) {
  $op = $form_state['clicked_button']['#value'];
  switch ($op) {
    case "Save configuration":
      $values = $form_state['values'];

      variable_set('ldapauth_login_process', $values['ldapauth_login_process']);
      variable_set('ldapauth_login_conflict', $values['ldapauth_login_conflict']);
      variable_set('ldapauth_forget_passwords', $values['ldapauth_forget_passwords']);
      variable_set('ldapauth_disable_pass_change', $values['ldapauth_disable_pass_change']);
      variable_set('ldapauth_alter_email_field', $values['ldapauth_alter_email_field']);

      drupal_set_message(t('The configuration options have been saved.'));
      break;
    case "Reset to defaults":
      variable_del('ldapauth_login_process');
      variable_del('ldapauth_login_conflict');
      variable_del('ldapauth_forget_passwords');
      variable_del('ldapauth_disable_pass_change');
      variable_del('ldapauth_alter_email_field');

      drupal_set_message(t('The configuration options have been reset to their default values.'));
      break;
  }

  // Rebuild the menu router.
  menu_rebuild();
}

Все было бы хорошо, если бы у меня не стояла русская локализация файла и надписи кнопочек не были бы переведены.
Решил проблему подстановкой функции t в каждый раздел case.
В итоге получилось:

function ldapauth_admin_settings_submit($form, &$form_state) {
  $op = $form_state['clicked_button']['#value'];
  switch ($op) {
    case t("Save configuration"):
      $values = $form_state['values'];

      variable_set('ldapauth_login_process', $values['ldapauth_login_process']);
      variable_set('ldapauth_login_conflict', $values['ldapauth_login_conflict']);
      variable_set('ldapauth_forget_passwords', $values['ldapauth_forget_passwords']);
      variable_set('ldapauth_disable_pass_change', $values['ldapauth_disable_pass_change']);
      variable_set('ldapauth_alter_email_field', $values['ldapauth_alter_email_field']);

      drupal_set_message(t('The configuration options have been saved.'));
      break;
    case t("Reset to defaults"):
      variable_del('ldapauth_login_process');
      variable_del('ldapauth_login_conflict');
      variable_del('ldapauth_forget_passwords');
      variable_del('ldapauth_disable_pass_change');
      variable_del('ldapauth_alter_email_field');

      drupal_set_message(t('The configuration options have been reset to their default values.'));
      break;
  }

  // Rebuild the menu router.
  menu_rebuild();
}

На drupal.org баг запрос не создавал т.к. захожу туда только по необходимости и не смогу его толком отслеживать.
Если есть желающие, добавьте запрос на drupal.org