Может кто-нибудь объяснить "аргументы доступа" в 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 - Разрешение по ролям

  1. Скопируйте строку разрешений и добавьте ее в массив массивов доступа:

    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;
    }
    

Ссылка: Допустимые аргументы доступа