如何在自动注册时分配特定用户角色 - 简单FB连接 - Drupal 7

问题描述:

如何在通过Simple FB Connect自动注册后从drupal core(D7)分配特定角色?我目前正在使用自动角色分配并为2个角色进行自定义注册,其中一个是具有有限权限的基本角色,另一个是具有更多编辑/创建权限的高级角色。我的问题是,简单的FB连接链接工作的很好,但注册人为错误的角色。我如何选择基于url分配的角色?如何在自动注册时分配特定用户角色 - 简单FB连接 - Drupal 7

也许在template.php中的东西,将允许下面的网址放在我的Facebook按钮?

/user/simple-fb-connect?registration=1&role=my_custom_role 

您可以根据hook_user_insert并检查网址并分配所需的角色,

 function module_name_user_insert(&$edit, $account, $category) 
{ 
     if($_SERVER['REQUEST_URI'] =="url") 
     { 
     //add code to assign desired role; 
     //assuming rid of custom role is 1 
     $account->roles[1]='custom_role'; 
     } 
} 
+0

创建一个自定义模块,并将其加入到它的时候,这将引发一个错误我。我更新了uri(https://example.com),并删除了'3',但它似乎在自定义注册页面上出现错误,'未定义索引' –

+0

我不知道为什么这不起作用,也许因为简单FB模块必须传递到Facebook,然后回到网站,请求URL将是Facebook.com,而不是mydomain.com,或者这可能只适用于用户填写注册页面上的字段...很难告诉。但是,它不起作用。 –

+0

如果它是重定向窗体Facebook或任何第三方的URL,那么用户也注册到您的应用程序。需要验证 – Deb

我建议你看一看规则模块:https://www.drupal.org/project/rules/

这个模块可以让你根据事件创建自动化任务。你想要做的是:

  • 下载并启用规则模块:https://www.drupal.org/project/rules/
  • 您需要启用规则UI以及
  • 转到规则配置:example.com/admin/config/workflow /规则
  • 创建新规则
  • 规则事件应该是这样的:“用户注册连接到Facebook的一个新帐户”
  • 这个规则应该是这样的:“分配角色到用户”

接口应该是非常简单的。 下面是一些额外的资源:

规则手册 https://www.drupal.org/documentation/modules/rules

+0

是的,其实我首先尝试了,但我还需要一些条件来传递到规则来定义它是否是“基本”或“编辑器”用户登录。我能想到的唯一方法是通过在URL中的字符串,因为简单的fb连接给我的自定义着陆页的可能性,通过传递它在字符串中,我认为这可能会工作,但试图注册fb它将我发回到此页面'user/simple-fb -connect?editor =#_ = _'在我的规则条件中,我将路径别名设置为'editor'。 did not work –

+0

出于安全原因,您不应该允许用户通过将其传递到URL中来“选择”他/她的角色。你不希望你的用户进入他们想要的角色。 – mgadrat

+0

每当有人注册给他/她编辑角色时,您应该有规则发送电子邮件给您的网站上的“管理员”(管理员)。 – mgadrat