首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >恢复或重置由Devise管理的本地登录信息。

恢复或重置由Devise管理的本地登录信息。
EN

Stack Overflow用户
提问于 2016-10-21 17:58:16
回答 2查看 65关注 0票数 0

我最近继承了一个小型Rails平台,这个平台或多或少被以前的开发人员抛弃了。它使用Devise进行用户身份验证/管理/特权。我有该平台在线的实时版本的管理登录,但如果我只是通过bin/rails服务器在本地运行服务器,则不知道管理登录名。我无法与前一位web开发人员联系。

我的问题是,当我没有本地版本的应用程序的管理登录时,如何通过Devise获得管理权限?有没有一种方法可以重置由Devise管理的用户,或者在不知道当前管理员的登录信息的情况下添加具有管理权限的新用户?我需要能够轻松地查看仅对权限提升的用户可见的页面,而不必执行完全部署,然后在线检查更改。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-10-21 18:13:10

你需要打开rails console

  1. 看看user.rb模型,以及用户可以拥有哪些角色。role_id表中有users属性吗?或者像这个admin那样的任何布尔属性。
  2. 在rails控制台中,您可以根据步骤2的发现找到管理员。假设具有id = 1的用户有一个管理属性,那么您可以在控制台中编写 user = User.find(1) user.admin? #true
  3. 然后,您可以为这个用户设置如下的新密码 user.password = '1234test' user.password_confirmation = 1234test user.skip_confirmation #if confirmable is enabled user.save!'

For Enum如提到的这里

声明一个枚举属性,其中值映射到数据库中的整数,但可以按名称查询。

  1. 您已经提到过,角色是一个enum,可能的角色是:customer, :mechanic, and :admin,这意味着在rails控制台中,如果您键入User.roles,它将返回映射到像这个User.roles # => { "customer" => 0, "mechanic" => 1, "admin" => 2 }这样的索引的所有角色。
  2. 为了将任何role提供给来自console的任何user,您需要为该user提供如下索引(整数): u = User.find(1) u.role = 0 # it needs integer here not symbols u.save u.role # => "customer"
票数 0
EN

Stack Overflow用户

发布于 2016-10-21 18:02:20

如果您知道管理员用户的用户id,您可以直接进入控制台并手动重置它。

代码语言:javascript
运行
复制
admin_user = User.find(7)

或者你只知道这封邮件

代码语言:javascript
运行
复制
admin_user = User.where(:email => 'admin@email.com').last

代码语言:javascript
运行
复制
admin_users = User.where(admin: true) #sort through the results and pick one

admin_user.password = 'my_new_password'
admin_user.password_confirmation = 'my_new_password'
admin_user.save(:validate =>) #in the event there are validation issues

您还可以选择只创建一个新的管理用户。

代码语言:javascript
运行
复制
admin_user = User.new
admin_user.admin = true
admin_user.email = 'your@email.com'
admin_user.password = 'my_new_password'
admin_user.password_confirmation = 'my_new_password'
admin_user.save
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40182793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档