有人可以解释Drupal中的“访问参数”吗?

时间:2010-06-10 22:25:30

标签: drupal drupal-6

有人可以在Drupal中解释“访问参数”吗?相信我,我试过谷歌搜索它,但我只是没有明确掌握。

3 个答案:

答案 0 :(得分:13)

在/ 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
}

答案 1 :(得分:9)

访问参数是传递给函数的参数,用于检查用户是否有权访问菜单。

给出菜单回调定义如下

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

答案 2 :(得分:0)

使用预定义的有效权限,例如系统权限:

  1. 检查以下有效权限列表:/ admin / people / permissions
  2. D7 - Permission by Role

    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;
      }
      
    2. 参考:Valid access arguments