欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

d7 druapl7 drupal 7 "access callback" 默认值 AG chatgpt 有大用 有大大用

drupal 7  "access callback"  默认值  

$items['get_js_jamf_enroll_profile'] = array(

        'page callback' => 'custom_twenty_three_jamf_get_js_jamf_enroll_profile',

        'access arguments' => array('access content'),  // 'access arguments' => true 是不对的,只能用'access callback'=>true

    );


在 Drupal 7 中,access callback 的默认值是 user_access。当你不显式指定 access callback 时,Drupal 会使用这个默认值,并配合 access arguments 来检查权限。

在你的代码示例中:

php
$items['get_js_jamf_enroll_profile'] = array(    'page callback' => 'custom_twenty_three_jamf_get_js_jamf_enroll_profile',    'access arguments' => array('access content'),  // 默认使用 user_access 作为 access callback );

这相当于:

php
$items['get_js_jamf_enroll_profile'] = array(    'page callback' => 'custom_twenty_three_jamf_get_js_jamf_enroll_profile',    'access callback' => 'user_access',  // 这是默认值    'access arguments' => array('access content'), );

如果你想允许所有人访问(无需权限检查),正确的做法是:

php
$items['get_js_jamf_enroll_profile'] = array(    'page callback' => 'custom_twenty_three_jamf_get_js_jamf_enroll_profile',    'access callback' => TRUE,  // 注意这里必须是 TRUE(布尔值),不是字符串 'true' );

你之前注释中的说明是正确的:不能使用 'access arguments' => true如果需要完全开放访问权限,必须使用 'access callback' => TRUE

总结:

  • 默认 access callback 是 user_access

  • 要完全开放访问权限,使用 'access callback' => TRUE

  • access arguments 必须是一个数组,不能是布尔值




普通分类: