欢迎各位兄弟 发布技术文章
这里的技术是共享的
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
必须是一个数组,不能是布尔值