仅允许某些角色访问 Drupal 中的自定义模块
Allow only certain roles access to custom module in Drupal
我无法正常工作。我已经为 Drupal 创建了一个订单模块,我需要控制对它的访问。我注意到,如果我直接浏览 http://example.com/orders/order-form
,则无需登录即可访问此订单。我一直在四处寻找,我认为我走在正确的轨道上,但缺少一些简单的东西。我在我的订单模块中创建了以下功能:
function order_form_permission() {
return array(
'order form permission' => array(
'title' => t('Order Form Permissions'),
'description' => t('Deny access to certain users.'),
),
);
}
然后在同一个文件中创建我使用这个函数的页面:
function order_form_menu() {
$items = array();
$items['orders/order-form'] = array(
'title' => 'Order Form',
'descriptions' => 'A form for ordering products',
'page callback' => 'drupal_get_form',
'page arguments' => array('order_form_form'),
'access arguments' => array('order_form_permission')
);
return $items;
}
page arguments
数组包含对生成的表单的调用。
我已经为 admin/people/permissions
中的某些用户角色设置了权限,当我未登录时显示访问被拒绝,这正是我想要的。但是当我浏览到以主管理员身份登录的页面时,我可以看到它,这就是我想要的。
问题是,当我尝试以另一个分配有角色的用户或帐户登录时,我希望能够访问订单,它会显示访问被拒绝。我一定是遗漏了一些简单的东西,希望有人能帮助我。
实际上您不需要定义访问回调,它默认为 user_access() 函数,该函数由来自 drupal 的 hook_permissions 提供支持。
挂钩菜单中的访问参数应与挂钩权限中的数组键相同。
所以尝试从
中删除下划线
'access arguments' => array('order_form_permission')
我无法正常工作。我已经为 Drupal 创建了一个订单模块,我需要控制对它的访问。我注意到,如果我直接浏览 http://example.com/orders/order-form
,则无需登录即可访问此订单。我一直在四处寻找,我认为我走在正确的轨道上,但缺少一些简单的东西。我在我的订单模块中创建了以下功能:
function order_form_permission() {
return array(
'order form permission' => array(
'title' => t('Order Form Permissions'),
'description' => t('Deny access to certain users.'),
),
);
}
然后在同一个文件中创建我使用这个函数的页面:
function order_form_menu() {
$items = array();
$items['orders/order-form'] = array(
'title' => 'Order Form',
'descriptions' => 'A form for ordering products',
'page callback' => 'drupal_get_form',
'page arguments' => array('order_form_form'),
'access arguments' => array('order_form_permission')
);
return $items;
}
page arguments
数组包含对生成的表单的调用。
我已经为 admin/people/permissions
中的某些用户角色设置了权限,当我未登录时显示访问被拒绝,这正是我想要的。但是当我浏览到以主管理员身份登录的页面时,我可以看到它,这就是我想要的。
问题是,当我尝试以另一个分配有角色的用户或帐户登录时,我希望能够访问订单,它会显示访问被拒绝。我一定是遗漏了一些简单的东西,希望有人能帮助我。
实际上您不需要定义访问回调,它默认为 user_access() 函数,该函数由来自 drupal 的 hook_permissions 提供支持。
挂钩菜单中的访问参数应与挂钩权限中的数组键相同。 所以尝试从
中删除下划线'access arguments' => array('order_form_permission')