Может кто-нибудь объяснить "аргументы доступа" в Drupal?
Может кто-нибудь объяснить "аргументы доступа" в Drupal? Поверьте мне, я попробовал Googling, но я просто не понимаю.
Ответы
Ответ 1
в/admin/user/permissions вы увидите множество параметров доступа. они поступают из модулей drupal и позволяют администратору сайта распространять определенные разрешения для ролей пользователей (по умолчанию drupal предоставляет "анонимные" и "зарегистрированные" роли).
модули объявляют их через hook_perm, и они так же просты в использовании, как:
function mymodulename_perm {
return array('use custom feature', 'use the other custom feature');
}
и они появятся там, готовые к использованию. теперь, в любой вашей функции, вы можете проверить доступ пользователей через user_access, который так же прост в использовании:
if (user_access('use custom feature')) {
//do something
}
Ответ 2
Аргументы доступа - это аргументы, переданные функции, которая проверяет, имеет ли пользователь доступ к меню.
Учитывая определение обратного вызова меню в качестве следующего
$items['blog/feed'] = array(
'title' => 'RSS feed',
'page callback' => 'blog_feed',
'access callback' => 'custom_module_blog_access',
'access arguments' => array('feed'),
'type' => MENU_CALLBACK,
);
Функция custom_module_blog_access()
будет называться custom_module_blog_access('feed')
. Если функция возвращает TRUE
, то пользователю будет предоставлен доступ к обратному вызову меню; иначе пользователь увидит страницу с ошибкой 403 (доступ запрещен).
Обычно обратный вызов доступа не определен, и по умолчанию Drupal будет использовать user_access()
.
Ответ 3
Для использования предопределенных допустимых разрешений, таких как системные разрешения:
- Проверить список допустимых разрешений на:/admin/people/permissions
![D7 - Разрешение по ролям]()
-
Скопируйте строку разрешений и добавьте ее в массив массивов доступа:
function mymodule_menu() {
$items['admin/config/mymodule_config'] = [
'title' => 'MyModule',
'page callback' => 'drupal_get_form',
'access callback' => '_mymodule_admin_form',
'access arguments' => array('administer site configuration'),
'type' => MENU_CALLBACK
];
return $items;
}
Ссылка: Допустимые аргументы доступа