我面临CRM Core联系人模块的问题。实际上我想为联系表单启用安全权限,以确保其他用户看不到用户添加的联系人。
您能否建议我如何处理这种情况。
由于 Garg
答案 0 :(得分:0)
CRM Core中没有允许您根据用户限制访问权限的权限。用户可以访问联系人,也可以不访问联系人。
您可以为联系人创建自定义访问回调。 hook_crm_core_entity_access使您可以为站点定义自定义访问规则,并在crm_core_contact_access中调用它。
要限制对用户创建的联系人的访问,您可以执行以下操作:
<?php
function MYMODULE_crm_core_entity_access ($op, $contact, $account, $entity_type){
if($op == 'edit'){
global $user;
if($user->uid !== $contact->uid){
return false;
}
}
return true;
}
?>
请注意,系统是以这种方式设计的,并且CRM Core的访问控制与节点/用户的访问控制不同。为联系人创建自定义访问功能时,请务必花时间测试您的工作。作为一个网站负责人,将所有联系方式暴露给全世界都是一件坏事。
我测试自定义访问规则的方式如下:
1)测试他们不允许匿名访问联系人
2)测试他们不允许任何经过身份验证的用户访问联系人(除非这是您想要的)
3)测试他们不允许超出测试对象的访问
4)测试他们是否允许访问您的测试主题