Здравствуйте. Как скрыть user/1 от анонимных и зарегистрированных пользователей?
Код в user-profile.tpl.php (сам файл подключается) не сработал.
<?php
global $user;
if ($user->uid != 1){ // если профиль просматривает не суперадмин
if ($account->uid != $user->uid){ // и если профиль не его собственный
drupal_access_denied(); // то вернуть 403 (Доступ к данной странице закрыт)
exit;
}
}
?>
Нужно всем сделать 403.
Комментарии
А что там можно найти в профиле админа, даже если его можно посмотреть? На нескольких сайтах посмотрел, вроде доступ заперещен анонимам.
Try this:
...
drupal_access_denied();
module_invoke_all('exit');
drupal_exit();
Собственно, вместо drupal_exit() можно и просто return, если вызов из функции препроцесса.
Не работает
Вообще - вы как-то странно разместили проверку в tpl, лучше бы в модуле это делать или на худой конец в template.php (например, template_preprocess_page).
В модуле и templae тоже не работает.
Снимите галку на просмотр профилей в правах анонима.
Спасибо. Упустил этот момент, что в самой админке это сделано. Видимо когда-то давно в тестах включил это, а может изначально было...
Блин это запрещает просмотр профилей не только админа, но и других пользователей
Не знаю, что у вас там за химия. Может, это как-то поможет.
"...Page callback functions wanting to report an "access denied" message should return MENU_ACCESS_DENIED instead of calling drupal_access_denied(). ..."
https://api.drupal.org/api/drupal/includes%21common.inc/function/drupal_...