如何在自动注册时分配特定用户角色 - 简单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';
}
}
我建议你看一看规则模块:https://www.drupal.org/project/rules/
这个模块可以让你根据事件创建自动化任务。你想要做的是:
- 下载并启用规则模块:https://www.drupal.org/project/rules/
- 您需要启用规则UI以及
- 转到规则配置:example.com/admin/config/workflow /规则
- 创建新规则
- 规则事件应该是这样的:“用户注册连接到Facebook的一个新帐户”
- 这个规则应该是这样的:“分配角色到用户”
接口应该是非常简单的。 下面是一些额外的资源:
是的,其实我首先尝试了,但我还需要一些条件来传递到规则来定义它是否是“基本”或“编辑器”用户登录。我能想到的唯一方法是通过在URL中的字符串,因为简单的fb连接给我的自定义着陆页的可能性,通过传递它在字符串中,我认为这可能会工作,但试图注册fb它将我发回到此页面'user/simple-fb -connect?editor =#_ = _'在我的规则条件中,我将路径别名设置为'editor'。 did not work –
出于安全原因,您不应该允许用户通过将其传递到URL中来“选择”他/她的角色。你不希望你的用户进入他们想要的角色。 – mgadrat
每当有人注册给他/她编辑角色时,您应该有规则发送电子邮件给您的网站上的“管理员”(管理员)。 – mgadrat
创建一个自定义模块,并将其加入到它的时候,这将引发一个错误我。我更新了uri(https://example.com),并删除了'3',但它似乎在自定义注册页面上出现错误,'未定义索引' –
我不知道为什么这不起作用,也许因为简单FB模块必须传递到Facebook,然后回到网站,请求URL将是Facebook.com,而不是mydomain.com,或者这可能只适用于用户填写注册页面上的字段...很难告诉。但是,它不起作用。 –
如果它是重定向窗体Facebook或任何第三方的URL,那么用户也注册到您的应用程序。需要验证 – Deb