使用 rails console 重置 Redmine 管理员密码

news/2025/2/25 23:52:20

忘记密码是常见的事,一般系统会配置有找回密码功能,如果未配置该功能,可以请管理员重置密码。

如果管理员密码忘记,又恰好没有配置找回密码的功能,就比较尴尬了。即使想直接修改数据库,可密码是加密字段,总不能再找个加密算法吧。

好在 Rails 功能足够强,只要能登录后台,一切都好说。rails console 是 Rails 命令行工具之一,允许程序开发人员或系统运维人员通过命令行与 Rails 应用交互。本文记录使用 rails console 重置 Redmine 管理员密码的过程。

进入 rails console 环境

下面假定 $REDMINE_ROOT 为 Redmine 安装目录,运行以下命令登录后台。

cd $REDMINE_ROOT
RAILS_ENV=production rails console

查找管理员用户

在 rails console 中运行以下命令查找管理员用户。

User.find_by_admin(true)

假设以上输出为:

=> #<User id: 1, login: "manager", hashed_password: "3b46ab60a781a55a11fc1d86137eb49c6e444820", firstname: "Easy", lastname: "Redmine", admin: true, status: 1, last_login_on: "2018-11-30 02:47:49", language: "en", auth_source_id: nil, created_on: "2018-11-13 06:31:44", updated_on: "2018-11-30 05:21:35", type: "User", identity_url: nil, mail_notification: "all", salt: "b97ee92aa69ff9bde75914899ff9f3e4", must_change_passwd: false, passwd_changed_on: "2018-11-13 06:57:32">

选择要修改的用户

从以上 rails console 输出中选择要修改的用户,记住其 login, 并将用户对象赋值给一个变量。

admin = User.find(1)

设置用户对象的密码并保存

输入以下命令,设置用户对象的密码并保存:

admin.password = 'Easy Redmine'
admin.save!

注意设置的密码需要符合系统设置的规则,否则在保存时会出现错误。比如在密码过短时, 执行 admin.save! 会出现异常:

ActiveRecord::RecordInvalid: Validation failed: Password is too short (minimum is 8 characters)

只有在 admin.save! 返回 true 时才表示保存成功。

验证测试及退出 rails console

此时即可启动 Redmine 用查询到的 login 和 新设置的 password 进行测试了。

如果没有问题,即可在 rails console 中输入执行 quit 退出 rails console 环境。

环境说明

以上命令在阿里云主机进行过测试,测试环境的主要软件版本如下:

  • Ubuntu 16.04 LTS
  • ruby 2.3.1p112 (2016-04-26)
  • Rails 4.2.6
  • Redmine 3.4.6

http://www.niftyadmin.cn/n/2455047.html

相关文章

wcf之OperationContextScope

作用&#xff1a;使用消息头向服务发送额外的信息。 1.客户端代码如下&#xff1a; 1 namespace Client2 {3 class Program4 {5 static void Main(string[] args)6 {7 CalculatorClient client new CalculatorClient("secure")…

工具类:ehCache,用于缓存

准备工作&#xff1a; 1.导入依赖&#xff1a; <ehcache.version>2.6.9</ehcache.version><ehcache-web.version>2.0.4</ehcache-web.version><dependency><groupId>net.sf.ehcache</groupId><artifactId>ehcache-core</a…

Python进阶08 异常处理

Python进阶08 异常处理 原文:Python进阶08 异常处理作者&#xff1a;Vamei 出处&#xff1a;http://www.cnblogs.com/vamei 欢迎转载&#xff0c;也请保留这段声明。谢谢&#xff01; 本文特别感谢kylinfish的纠正&#xff0c;相关讨论见留言区。 异常处理 在项目开发中&#x…

ELK + Filebeat + Nginx 集中式日志分析平台(一)

一、环境准备 本次我们采用 yum 官方仓库进行安装&#xff0c;之前采用 rpm 包安装的文档大家请看 http://blog.51cto.com/wzlinux/2175836 。 1、软件版本 Filebeat 6.5.1Logstash 6.5.1Elasticsearch 6.5.1Kibana 6.5.1JDK 1.8.0_181 2、服务器准备 IP系统角色172.18.8.200Ce…

接口类型的合理运用

2019独角兽企业重金招聘Python工程师标准>>> 接口定义 在 Go 语言的语境中&#xff0c;当我们在谈论“接口”的时候&#xff0c;一定指的是接口类型。因为接口类型与其他数据类型不同&#xff0c;它是没法被值化的&#xff0c;或者说是没法被实例化的。 type 接口名…

C#连接SQLite的...方法

1 SQLite简介 SQLite&#xff0c;是一款轻型的数据库&#xff0c;是遵守ACID的关联式数据库管理系统&#xff0c;它的设计目标是嵌入式的&#xff0c;而且目前已经在很多嵌入式产品中使用了它&#xff0c;它占用资源非常的低&#xff0c;在嵌入式设备中&#xff0c;可能只需要几…

node.js常用模块

前100个依赖库里&#xff0c;underscore是属于语言基础类&#xff0c;express是服务器框架&#xff0c;有5、6个测试框架、以及5、6个递归遍历目录树的工具类、3个左右的命令行解析工具类&#xff0c;3个主流数据库的链接client库&#xff0c;2个ws库&#xff0c;多个js/CSS前端…

docker实战centos 7.4 安装docker

docker实战centos 7.4 安装docker 首发&#xff1a;arppinging 一、docker安装条件 1.64 bit cpu2.linux kernel 3.103.linux kernel 支持 cgroups and namespaces centos 7.4 x64为的满足条件。实际上centos 6.x系列也能安装docker。 二、下载和安装yum源 下载yum文件 [rootno…