У меня есть модуль для загрузки файлов в базу данных, и только администратор может загружать эти файлы. Так что я hook_permission
для администрирования для загрузки файлов:
function upload_permission() {
return array(
'administer uploader' => array(
'title' => t('Administer Uploader'),
'description' => t('Allow the following roles to upload files files to the server.'),
),
);
}
Также я создаю несколько пользовательских узлов с путем files/node/%
и теперь мне нужно разрешение для анонимных пользователей, чтобы увидеть страницу с пользовательскими узлами. Ниже я добавляю это разрешение:
'access files/node/%' => array(
'title' => t('Access Files'),
'description' => t('Access Files.'),
),
и до сих пор не работает. Есть ли другое решение, как анонимный пользователь может просматривать страницу с пользовательскими узлами?
Насколько я знаю, просто проверьте разрешение «Просмотр опубликованного контента» на странице разрешений CMS, которая должна быть проверена на роль анонимного пользователя. Для просмотра узла Drupal никаких специальных разрешений не требуется, пока вы не используете какие-либо индивидуальные настройки разрешений узла. Кроме того, для вашего пользовательского пути к узлу, пожалуйста, используйте приведенный ниже массив настроек в вашем hook_menu, чтобы все пути работали с URL ‘files / node /%’.
/**
* Implements hook_menu().
*/
function yourmodule_menu() {
$items = array();
$items['files/node/%'] = array(
'title' => 'Files node',
'page callback' => '_yourmodule_page_callback',
'page arguments' => array(2),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
Просто обратите внимание на строку кода ниже, это говорит о том, что любой пользователь с разрешением «Доступ к контенту» (Просмотр опубликованного контента) может видеть этот узел.
'access arguments' => array('access content'),
Надеюсь, что это поможет вам!
Других решений пока нет …