允许文件访问 Drupal 中的特定用户(不是角色)
Allow file access to specific users in Drupal (not roles)
我为我们的客户提供了以 pdf 文件形式记录的历史数据。现在我正在开发一个网络平台(在 Drupal 中),客户端应该能够从中访问这些数据。问题是我不希望除了信息所属的用户之外的任何人都可以使用这些文件。
我的问题是是否可以在 Drupal 中向特定用户授予对某些文件或文件夹的访问权限。因为替代方案是为每个用户创建一个角色,这是不切实际的。
查看 Alex 的回答:
与Drupal的files文档相关:https://www.drupal.org/documentation/modules/file
特别是“管理文件位置和访问权限”部分,其中解释了如何创建私人文件。
基本上,您可以这样做:
- 创建一个名为 "Private client data"
的节点
- 添加一个名为 "PDF File"
的字段
- 配置字段为私有文件
- 限制对节点的访问
最后我找到了一个可以满足我所有需求的解决方案。
我为我想从中访问文件的页面创建了一个自定义页面模板(例如节点--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 中要求的用户名相似的用户才能访问该文件夹。在我的例子中,我要求另一个字段,而不是用户名,但这应该足以作为一个简单的例子。
我为我们的客户提供了以 pdf 文件形式记录的历史数据。现在我正在开发一个网络平台(在 Drupal 中),客户端应该能够从中访问这些数据。问题是我不希望除了信息所属的用户之外的任何人都可以使用这些文件。
我的问题是是否可以在 Drupal 中向特定用户授予对某些文件或文件夹的访问权限。因为替代方案是为每个用户创建一个角色,这是不切实际的。
查看 Alex 的回答:
与Drupal的files文档相关:https://www.drupal.org/documentation/modules/file
特别是“管理文件位置和访问权限”部分,其中解释了如何创建私人文件。
基本上,您可以这样做:
- 创建一个名为 "Private client data" 的节点
- 添加一个名为 "PDF File" 的字段
- 配置字段为私有文件
- 限制对节点的访问
最后我找到了一个可以满足我所有需求的解决方案。 我为我想从中访问文件的页面创建了一个自定义页面模板(例如节点--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 中要求的用户名相似的用户才能访问该文件夹。在我的例子中,我要求另一个字段,而不是用户名,但这应该足以作为一个简单的例子。