gpt4 book ai didi

ruby-on-rails - 使用已登录的管理员用户通过 Devise 创建新用户

转载 作者:数据小太阳 更新时间:2023-10-29 08:50:26 24 4
gpt4 key购买 nike

我正在使用 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 一起工作得非常好。这是一个教程:

http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/

编辑:我想我可能误解了你的问题。也许您需要的只是另一个 Controller 来处理 Devise Controller 之外的用户创建。您可以使用 cancan 将对此 Controller 的访问权限限制为仅管理员。

关于ruby-on-rails - 使用已登录的管理员用户通过 Devise 创建新用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com