我试图找出如何以编程方式将多个角色分配给 SugarCRM 中的用户。通过做一些研究,我发现我可以利用 role->set_user_relationship() 函数部分地做到这一点。但它不允许我将多个角色作为参数传递。
理想情况下,我期待一种允许我传递角色 ID 数组的行为。执行此方法后,它应该将所有现有分配给用户的角色替换为新角色。但似乎这种行为不受开箱即用的支持,因此这个方向的任何指导/变化都是完全可以的。
我查看了各种 api 资源,但找不到任何有用的东西。谁能给我建议?
谢谢。
这就是我用来向用户添加特定角色的方法。
$role = new ACLRole();
$role->retrieve($sugar_config['role']['boss']);
if (!$current_user->check_role_membership($role->name)) {
// Add user to role, if he/she is not already a member
$role->set_relationship(
'acl_roles_users',
array(
'role_id' => $role->id,
'user_id' => $current_user->id
),
false
);
}
我既没有使用也没有查看此 CRM 的代码,但是如果您想在 CRM 中将角色 1 和角色 2 设置为新用户,您应该将新角色定义为 role3 ,因为角色使用逻辑是这样的。而且我猜在编码方面会有很多部分需要更改以对新用户使用多个角色,所以我的建议是为每个请求的授权级别定义尽可能多的角色。