0

我有一个模块,其中包含通过 AJAX 访问以执行不同任务的页面列表

/spower
/spower-geometry
...

. 我正在尝试创建一个允许匿名用户访问所有内容的权限。如果我以管理员身份登录,一切都会按预期进行。但是,匿名用户收到 403 错误。我需要为每条路径使用不同的权限挂钩吗?这是我到目前为止所拥有的:

function spower_permission() {
  return array(
    'access intro page' => array(
    'title' => t('Access Intro page'),
    'description' => t('Allow anonymous users to access spower intro page'),
  ),
  'access SparkerPower app' => array(
    'title' => t('Access full page'),
    'description' => t('Allow users to access full spower app'),
   ),
 );
}

function spower_menu() {
    $items = array();
    $items['spower'] = array(
      'title' => t('SparkerPOWER'),
      'page callback' => 'spower_form',
      'access arguments' => array('access SparkerPower app'),
      'description' => t('form for SparkerPOWER. Enter your house information, and learn how solar panels can help you.'),
      'type' => MENU_CALLBACK,
    );
    $items['spower_geometry/%'] = array( //send data from Jquery (map areas)
      'title' => 'Ajax callback',
      'description' => 'Callback for jQuery area AJAX request.',
      'page callback' => 'spower_geometry_callback',
      'page arguments' => array(1),
      'access arguments' => array('access spower geometry'),
      'access callback' => 'user_access',
      'type' => MENU_CALLBACK,
    );

谢谢您的帮助!

4

2 回答 2

0

不,您不需要为HOOK_MENU. 使用 .您的代码是正确的access arguments。您无需access callback在第二个菜单项中指定 。

您是否还更新了后端的权限,以便匿名用户可以访问您定义的菜单路径?它在admin/people/permissions.

于 2013-10-09T18:23:22.350 回答
0

我尝试更改access argumentsTRUE,但没有用。然后我更改access argumentsarray('access SparkerPower app'),我之前定义的那个。那行得通,我能够使用匿名用户访问我需要的所有 url 路径。

于 2013-10-10T16:07:02.780 回答