2012-09-03 100 views
2

我试图在CiviCRM中设置访问控制系统来限制某些用户访问某些自定义数据字段集。我打算使用Civi ACL来实现这一点,不过我的理解是它们被Drupal权限覆盖,因此'CiviCRM:访问所有自定义数据'复选框必须在Drupal权限内未被选中。然后,我将能够使用ACL来允许这些字段只能访问我想要的用户。使用Drupal权限控制CiviCRM访问

我的问题是,我创建了一个Drupal角色'crm user',并且此框未选中,但是当我以该角色的用户身份登录时,仍然可以看到所有的自定义数据,我不应该能够做到。有谁知道我可能会做错什么?是否还有其他需要删除的Drupal权限?

+0

要澄清,该用户还没有通过ACL的任何额外的权限,他只是一个Drupal用户不应该有权访问自定义数据字段,因为相关的Drupal权限没有设置? – tog22

+0

是的,确切地说。感谢您的澄清。 – user1643270

回答

1

如果用户具有“Administer CiviCRM”的Drupal访问权限,那将覆盖“CiviCRM:访问所有自定义数据”设置。

因此,任何具有“管理CiviCRM”Drupal访问权限的用户都可以访问CiviCRM自定义数据,而不管“CiviCRM:访问所有自定义数据”的设置如何。

2

确保您的'crm用户'角色具有所需的最低权限。正如@ Flying的答案中所指出的那样,'管理CiviCRM'权限允许用户访问整个CiviCRM,因此覆盖'访问所有定制数据'权限。

请注意,如果您在公开的配置文件或表单中使用自定义数据字段,这些字段或表单需要匿名用户或登录用户访问,那么这些角色需要具有“访问所有自定义数据”权限,以便他们可以看到并完成这些领域,所以你需要小心设置你的用户角色和权限。

一旦您拥有了Drupal权限,您就可以继续设置您在CiviCRM中所需的ACL。