Drupal 7 Drupal7:使用规则将用户添加到OG,然后分配OG角色

Drupal 7 Drupal7:使用规则将用户添加到OG,然后分配OG角色,drupal-7,user-roles,organic-groups,drupal-rules,Drupal 7,User Roles,Organic Groups,Drupal Rules,其目的是在添加新用户时完成以下操作: 创建新组(OG) 省省吧 将用户添加到已保存组(OG) 分配组角色(OG) 我对有机团体使用规则。除了分配小组角色之外,一切都很好。我知道你可以添加一般的系统角色,但是有人知道如何在程序中分配组(OG)角色吗 非常感谢的任何帮助我在规则上使用以下自定义php操作,将用户添加到组并分配OG角色 OG角色编号似乎按照OG角色的顺序排列,通过admin/config OG条目查看 global $user; // Load the user we want

其目的是在添加新用户时完成以下操作:

  • 创建新组(OG)
  • 省省吧
  • 将用户添加到已保存组(OG)
  • 分配组角色(OG)
我对有机团体使用规则。除了分配小组角色之外,一切都很好。我知道你可以添加一般的系统角色,但是有人知道如何在程序中分配组(OG)角色吗


非常感谢的任何帮助

我在规则上使用以下自定义php操作,将用户添加到组并分配OG角色

OG角色编号似乎按照OG角色的顺序排列,通过admin/config OG条目查看

global $user;

// Load the user we want to add to the group
$account = user_load($user->uid);    

// Add the user to the group - hard code group 18 which is my group as cant 
// get PID from Ubercart order, to pull gid from nid. User, current user, active, 
// etc., all default in 2nd array() param to og_group.
og_group(18);

// Changes the users role in the group (1 = non-member, 2 = member, 3 = administrator member, 4 = Forum Administrator)
og_role_grant(18, $account->uid, 2);

注意,OG角色4(论坛管理员)是我创建的自定义OG角色。另外,“member”(2)是默认的,我相信,但是我把它放进去了,这样我就可以记住如果将来需要的话,如何分配其他OG角色

不幸的是,我不是php大师,我还没有找到如何从订购的Ubercart产品的节点中提取pid,以便获得其gid,从而不必硬编码18的gid

希望以上代码片段(主要是og_role_grant)能作为规则操作自定义php代码片段为您工作(记住不要在顶部和底部包含php标记,因为规则会为您这样做)

如果您对我获取订购的ubercart产品的gid(如上所述)的问题有任何想法,请随时分享。:)


最好的祝愿

有一个建议的有机组补丁,将此功能添加到有机组规则集成中

您可以在此处找到修补程序:


它添加了授予和撤销角色操作。

您可以使用og\u role\u Grant($group\u type,$gid,$uid,$rid)以编程方式将角色分配给用户到组织组中


要将其与规则一起使用,您可以使用hook\u rules\u action\u info()

定义自定义操作您是否找到了可行的解决方案?我自己也在找一个,而你从来没有选择任何一个作为答案。