Как я могу скрыть профиль пользователя от пользователей?


Я использую Логин на основе IP, чтобы предоставить посетителям частной сети доступ к некоторым частям моего сайта Drupal 6. Это означает, что все пользователи из этой частной сети вошли в систему как один и тот же пользователь.

Теоретически любой, кто заходит на сайт таким образом, может изменить пароль пользователя, чего я на самом деле не хочу допускать. Я попробовал модуль защиты пользователей , но он просто не работает на моем сайте. Я подозреваю, что это просто несовместимо с модулем входа в систему IP.

В идеале я хотел бы полностью скрыть страницу /user от определенных пользователей. Они не должны иметь доступа к нему и не должны иметь возможности изменять свой пароль или любую другую информацию профиля.

Как я могу запретить доступ к профилю пользователя?

 1
Author: Mad Scientist, 2013-01-14

1 answers

Вы можете сделать это с помощью hook_menu_alter, изменив обратный вызов доступа и аргументы доступа для соответствующих пунктов пользовательского меню.

Например,

/**
 * Implements hook_menu_alter
 */
function MYMODULE_menu_alter(&$items){
  // Change user view and edit callbacks to be "administer users" access only.
  $items['user/%user/view']['access callback'] = 'user_access';
  $items['user/%user/view']['access arguments'] = array('administer users');
  $items['user/%user_uid_optional']['access callback'] = 'user_access';
  $items['user/%user_uid_optional']['access arguments'] = array('administer users');
  $items['user/%user_category/edit']['access callback'] = 'user_access';
  $items['user/%user_category/edit']['access arguments'] = array('administer users');
}

Очистите кэш меню для применения.

 1
Author: David Thomas, 2013-01-14 10:31:39