Drupal 7:如何限制对特定用户角色的文件访问

mec*_*msk 6 security drupal file cck drupal-7

我需要在Drupal 7上开发一个站点.我在CCK中有一些带有文件字段的内容类型.并且应仅授予对特定Drupal用户角色的这些类型的节点的访问权限.在任何时候,网站管理员都应该能够将这些节点设为"公共"或"私有".

我可以使节点仅对特定用户角色可见,但这不够安全.如果匿名用户知道文件路径(www.mysite.org/hidden_​​files/file1),他可以下载它.

解决这个问题最优雅的方法是什么?

提前致谢.

Ale*_*lex 9

请在此处查看此文档:http://drupal.org/documentation/modules/file

具体来说,标题为"管理文件位置和访问"的部分讨论了设置私有数据存储(所有受Drupal 7支持,只需配置它).

要解释一下,创建一个文件夹,例如:

网站/默认/文件/私有

使用以下内容将.htaccess文件放在该文件夹中,以防止通过Web直接访问文件:

拒绝所有人

(该文档声称以下步骤自动执行上述步骤,我没有测试过,但如果您跳过上述两个步骤,则可以节省一些时间)

登录Drupal的管理界面,转至/ admin/config/media/file-system,配置专用URL并选择Drupal服务的私有文件作为默认下载方法.

为了定义对节点和字段的细粒度访问,您可以使用Content Access: http ://drupal.org/project/content_access

您还需要编辑内容类型并设置文件/图像上载字段,以将上载的文件保存到私人文件而不是公共文件.

此时,节点和字段级别权限将确定是否允许用户访问将通过在提供文件之前验证凭据的菜单挂钩提供的文件.

希望这可以帮助.