Может кто-нибудь объяснить "аргументы доступа" в Drupal? - PullRequest
14 голосов
/ 11 июня 2010

Может кто-нибудь объяснить "аргументы доступа" в Drupal? Поверьте мне, я пытался найти его в Google, но я просто не понимаю

Ответы [ 3 ]

13 голосов
/ 11 июня 2010

в / 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
}
9 голосов
/ 15 июня 2010

Аргументы доступа - это аргументы, передаваемые функции, которая проверяет, есть ли у пользователя доступ к меню.

С учетом определения обратного вызова меню в следующем виде

  $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().

0 голосов
/ 08 декабря 2016

Для использования предварительно определенных действительных разрешений, таких как системные разрешения:

  1. Проверьте список действительных разрешений по адресу: / admin / people / permissions

D7 - Permission by Role

Скопируйте строку разрешения и добавьте ее в массив «аргументы доступа»:

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

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

...