如何为Drupal实现简单的下载权限控制?

注意事项:
如支付后未自动显示完整内容,可点击“已支付?点此查询订单”进行查看。
如遇内容不符或缺失,请联系内容作者或平台客服(工作日 9:00-18:00)。

  默认情况下,通过Drupal上传的文件被存放在 sites/default/files目录下,且用户可以通过绝对路径直接访问上传的文件。

  除了公开目录之外,Drupal还支持配置私有目录,通过 .htaccess 文件限制用户通过URL访问下载的内容。

  如果希望在这个基础上实现针对于用户角色的文件访问控制,仅用Drupal默认的文件管理系统还不足以实现。不过Drupal模块化的设计让开发人员可以在其文件系统的基础上实现自己的扩展来增强Drupal的功能,Private files download permission 模块就在Drupal内核文件管理的基础上,为其增加了基于目录和用户角色的下载访问控制能力。

安装 Private files download permission 模块

  可以通过 Private files download permission 项目主页下载模块并进行安装,也可以使用以下 drush 命令进行下载和安装

drush dl private_files_download_permission
drush en private_files_download_permission

配置文件系统

  可以在任何配置上传文件目录类型(公开和私有)的地方进行配置,如文件系统(配置>媒体>文件系统)的默认设置、文件字段的目录类型设置等等。Private files download permission 模块会自动对所有私有目录类型进行用户访问权限检查。

Drupal 文件系统设置

配置访问权限

  进入权限(用户>权限)管理页面,为指定用户分配访问私有目录的权限(如下图)即可。

Private files download permission权限设置

实际效果

  当用户访问私有目录下的文件时,Private files download permission 模块会对用户权限(基于角色)进行检查。如果有访问权限,则正常下载,如果无访问权限,则现实“访问拒绝”页面。

Drupal 拒绝访问

  相对而言,文件下载权限控制算不上是所有网站的通用需求,但有这样需求的站点也不在少数。对于希望实现简单下载权限控制的用户,不妨试试Private files download permission模块。

看完了?还不过瘾?点此向作者提问