用户登录

默认 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. 你没有权限访问这个页面 ...

因为当前我的身份是匿名用户,所以没有权限访问私有文件 ..

控制私有文件的访问权限:hook_file_download《 Drupal:媒体 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点