默认 Drupal 的私有文件任何人都可以访问 ... 先复制一下这个私有文件的地址 ... 然后在浏览器上打开一个没有登录的窗口 ... 再访问一下这个私有文件 ... 同样可以显示或者下载这个私有文件 ..
有些第三方的模块可以让我们控制私有文件的访问权限 ... 或者在我们自己的自定义模块的里面,可以用一下 file_download ...
我提前创建了一个简单的模块 .. 在模块的 module 文件里,用一下 file_download .. ninghao_media 是我的这个自定义模块的名字 .. 后面加上 file_download .. 函数有个 $uri 参数 ..
在它里面,我们先得到当前用户的角色列表 .. 名字是 $currentUserRoles .. 用一下 Durpal 的 currentUser 方法,访问一下 getRoles 这个方法 .. 它会返回当前用户的角色列表 ..
然后判断一下,看看当前用户的角色列表里面有没有 administrator 这个角色 .. 它是管理员的角色的名字 .. 如果有 .. 就 return 1 ...
也就是,如果当前用户是管理员,就让它访问私有文件 ...
如果不是,就 return -1 ..
保存 ... 重建一下缓存 ...
这个浏览器窗口是用管理员身份登录的 ... 访问一下这个私有文件 ... 可以正常打开 ...
再回到这个没登录的浏览器窗口 ... 这里会显示 You are not authorized to access this page. 你没有权限访问这个页面 ...
因为当前我的身份是匿名用户,所以没有权限访问私有文件 ..