【问题标题】:Drupal 6 customizing dual module conflictDrupal 6 自定义双模块冲突
【发布时间】:2012-02-15 22:36:44
【问题描述】:
我正在使用auto assign role 模块将编辑器 的角色分配给通过“创建新帐户”链接注册的任何人。这很好用。
但是,editor 角色的用户可以创建不同角色类型的其他用户。为此,我使用uCreate 模块。
问题是当编辑创建用户时,该用户也获得了编辑角色。
我研究了许多挂钩,以编程方式删除不需要的角色,但没有成功。我该如何解决这个问题?
【问题讨论】:
标签:
drupal-6
permissions
roles
creation
【解决方案1】:
当“编辑角色”用户通过“uCreate模块”创建用户时,hook_user被调用驻留在“自动分配角色模块”中,这就是问题。
“ucreate module line:299”中的 user_save 函数在“auto assign role.module file”第 155 行调用带有“insert”参数的 hook_user。
case 'insert':
// If this is an administrator creating the account only use auto_assign if
// allowed by auto_admin_active
if (arg(0) == 'admin' && _autoassignrole_get_settings('auto_admin_active') == 0) {
return;
}
这里的代码检查它是否是管理员用户,如果不是管理员,那么它将为该用户分配编辑角色。
相反,您可以创建自定义模块并实现 hook_user 并在插入用户时更改角色。更多信息请参考user_save in drupal 6