Запретить юзеру изменять пароль

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

Аватар пользователя KCEOH KCEOH 27 марта 2007 в 5:47

Собственно сабж...

Есть сайт, доступ только одному юзеру. Т.е. логин-пароль знают много людей, нужно чтобы никто не мог поменять.

Поиск дал http://www.drupal.ru/node/1776, и http://drupal.org/project/user_readonly

в 5.* модуль user_readonly работает весьма криво (точнее не работает нихрена - мало того, что ошибок на пару экранов вываливается, дак еще и запрет на поля не действует).

Есть ли какой-либо еще способ, кроме хаков user.module ?

Комментарии

Аватар пользователя KCEOH KCEOH 27 марта 2007 в 13:18

Мало ли кому-то нужно еще будет...
Открываем modules\user\user.module, комментируем нужные строчки

1) Убрать "Запросить новый пароль" из формы логина:
<?php500: $items[] = l(t('Request new password'), 'user/password', array('title' => t('Request new password via e-mail.')));?>
2) Убрать формочку "Имя пользователя или адрес электронной почты:" на странице учетной записи пользователя, а заодно и возможность получения пароля (т.е. убирает не только форму, но и не обрабатывает данные - говорит, что не существует логин/email)

<?php1028: function user_pass() {
... комментируем все содержимое
1043: }
?>

3) Убрать форму изменения пароля со страницы редактирования профиля + обработку этой формы.
Найти
<?php1029: function user_edit_form?>
В ней комментируем блок

<?php  if (!$register) {
    
$form['account']['pass'] = array('#type' => 'password_confirm',
      
'#description' => t('To change the current user password, enter the new password in both fields.'),
      
'#size' => 25,
    );
  }
  elseif (!
variable_get('user_email_verification'TRUE) || $admin) {
    
$form['account']['pass'] = array(
      
'#type' => 'password_confirm',
      
'#description' => t('Provide a password for the new account in both fields.'),
      
'#required' => TRUE,
      
'#size' => 25,
    );
  }
?>

Можно еще на всякий случай закоментировать содержимое
<?php1059: function user_pass_submit?>
и кусок
<?php686: function user_menu?>

<?php711: $items[] = array('path' => 'user/reset', 'title' => t('Reset password'),
712:   'callback' => 'drupal_get_form', 'callback arguments' => array('user_pass_reset'), 'access' => TRUE, 'type' => MENU_CALLBACK);
?>