Ruby on Rails中,为何特定用户无法使用密码重置功能?

更新于
2026-10-09 19:20:46
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计306个文字,预计阅读时间需要2分钟。

Ruby on Rails中,为何特定用户无法使用密码重置功能?

在我的Rails项目中,我定义了不同类型的用户,其中一种用户有user_status属性,值为admin。与其他用户不同,它拥有编辑内容的完整权限。出于明显的原因,我想为这些类型的用户添加额外的安全性。

在我的Rails项目中,我有不同类型的用户,其中一个用户具有user_status:admin,与其他用户不同,它拥有编辑内容的完全权限.出于显而易见的原因,我想为这些类型的用户添加额外的安全性,特别是完全禁用密码恢复.

覆盖标准Devise密码恢复(:可恢复的Devise模块)方法的正确方法是什么,以便当用户尝试为管理员用户(user_status ==“admin”)的用户获取重置密码链接时,系统会返回“标准电子邮件未找到”消息?

这有点像未回答的问题:Restrict Devise password recovery to only certain users

先感谢您.

我选择并且对我有用的方法是通过将以下内容添加到models / user.rb来覆盖User模型的send_reset_password_instructions方法:

Ruby on Rails中,为何特定用户无法使用密码重置功能?

def send_reset_password_instructions return false if self.user_status == 'admin' super end

这使得Devise在电子邮件属于管理员帐户时不会做任何事情.

本文共计306个文字,预计阅读时间需要2分钟。

Ruby on Rails中,为何特定用户无法使用密码重置功能?

在我的Rails项目中,我定义了不同类型的用户,其中一种用户有user_status属性,值为admin。与其他用户不同,它拥有编辑内容的完整权限。出于明显的原因,我想为这些类型的用户添加额外的安全性。

在我的Rails项目中,我有不同类型的用户,其中一个用户具有user_status:admin,与其他用户不同,它拥有编辑内容的完全权限.出于显而易见的原因,我想为这些类型的用户添加额外的安全性,特别是完全禁用密码恢复.

覆盖标准Devise密码恢复(:可恢复的Devise模块)方法的正确方法是什么,以便当用户尝试为管理员用户(user_status ==“admin”)的用户获取重置密码链接时,系统会返回“标准电子邮件未找到”消息?

这有点像未回答的问题:Restrict Devise password recovery to only certain users

先感谢您.

我选择并且对我有用的方法是通过将以下内容添加到models / user.rb来覆盖User模型的send_reset_password_instructions方法:

Ruby on Rails中,为何特定用户无法使用密码重置功能?

def send_reset_password_instructions return false if self.user_status == 'admin' super end

这使得Devise在电子邮件属于管理员帐户时不会做任何事情.