允许文件访问Drupal中的特定用户(不是角色)

时间:2015-10-09 12:48:11

标签: drupal drupal-7 roles

我为客户提供了pdf文件中记录的历史数据。现在我正在开发一个Web平台(在Drupal中),客户端应该能够访问这些数据。问题是我不希望这些文件可供除信息所属用户以外的任何人使用。

我的问题是,是否可以向Drupal中的特定用户授予对某些文件或文件夹的访问权限。因为替代方案是为每个用户创建一个不实用的角色。

2 个答案:

答案 0 :(得分:0)

查看Alex的答案:https://stackoverflow.com/a/9850031/974809

它与Drupal的文件文档有关:https://www.drupal.org/documentation/modules/file

具体而言,该部分" 管理文件位置和访问权限"这解释了如何创建私有文件。

基本上,你可以这样做:

  1. 创建名为"私人客户数据"
  2. 的节点
  3. 添加名为" PDF文件"
  4. 的字段
  5. 将字段配置为私有文件
  6. 限制对节点的访问

答案 1 :(得分:0)

最后,我找到了一个涵盖我所有需求的解决方案。 我为我想要访问的页面创建了一个自定义页面模板(例如,节点 - 4.tpl.php),它捕获用户名并用它生成一个cookie:

global $user;
$username = $user->name;
$cookie_name = 'cookie_name';//
$cookie_value = $username;//
setcookie($cookie_name, $cookie_value, time() + (3600), "/");

然后我在包含此代码的每个用户文件夹中创建一个.htaccess文件:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} !cookiename=username [NC]
RewriteRule .* http://alternativepath/ [L]

因此,只有用户名的用户就像我在htaccess中要求的用户名才能访问该文件夹。在我的情况下,我要求另一个字段,而不是用户名,但这应该足够作为一个简单的例子。