我正在使用 Devise 在 Rails 上构建一项服务,该服务需要“管理员”用户将常规用户添加到其组织帐户。 Devise 的默认行为不支持此功能,因为当登录的管理员用户尝试创建常规用户帐户时,会调用 ':require_no_authentication' 方法。
实现我正在寻找的功能的推荐方法是什么?
- :require_no_authentication 由 prepend_before_filter 中调用 Devise::RegistrationsController 类,而不是在其中之一 RegistrationsController 方法,所以我不知道这是否可以 被覆盖(如果我错了请纠正我)。
- 我相信将管理员用户与普通用户分开会 工作,但是这些用户将具有非常相似的属性,所以我 相信这样做会增加不必要的重复。
- 我目前正在尝试创建新的管理员用户(他们又创建 普通用户所属的组织)使用常规 使用“users#new”和“users#create” Controller 设计注册流程 操作,并允许管理员通过“users#add”添加新用户 行动。
如果有另一个好的用户身份验证 gem 更适合我的需求,我很乐意考虑切换到它。
最佳答案
这似乎更像是授权问题而不是身份验证问题。您可以使用授权 gem,例如 cancan ,将角色分配给用户(例如管理员)并向这些角色授予能力。这与 Devise 配合使用效果非常好。这是一个教程:
编辑:我想我可能误解了你的问题。也许您需要的只是另一个 Controller 来处理 Devise Controller 之外的用户创建。您可以使用 cancan 将此 Controller 的访问权限限制为仅管理员。
关于ruby-on-rails - 通过 Devise 使用已登录的管理员用户创建新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419527/