1

我已经创建了用于将文件上传到数据库的模块,并且只有管理员可以上传该文件。所以我必须hook_permission让管理员上传文件:

function upload_permission() {
  return array(
    'administer uploader' => array(
      'title' => t('Administer Uploader'),
      'description' => t('Allow the following roles to upload files files to the server.'),
    ),
  );
} 

我还创建了几个带有路径的自定义节点,files/node/%现在我需要匿名用户的权限才能查看带有自定义节点的页面。下面我添加这个权限:

'access files/node/%' => array(
      'title' => t('Access Files'),
      'description' => t('Access Files.'),
    ),

仍然不工作。还有其他解决方案如何匿名用户可以查看带有自定义节点的页面吗?

4

1 回答 1

2

据我所知,只需检查 CMS 权限页面中的“查看已发布内容”权限,应检查匿名用户角色。在使用任何单个节点权限设置之前,查看 Drupal 节点不需要特定权限。此外,对于您的自定义节点路径,请在您的 hook_menu 中使用以下设置数组,以使所有路径与 URL 'files/node/%' 一起使用。

/**
* Implements hook_menu().
*/
function yourmodule_menu() {
    $items = array();    
    $items['files/node/%'] = array(
        'title' => 'Files node',
        'page callback' => '_yourmodule_page_callback',
        'page arguments' => array(2),
        'access arguments' => array('access content'),
        'type' => MENU_CALLBACK,
      );
    return $items;
}

请注意下面的代码行,这表示任何具有“访问内容”(查看已发布内容)权限的人都可以看到这些节点。

'access arguments' => array('access content'),

希望对你有帮助!

于 2017-05-22T06:25:40.490 回答