如何在 dockerized 的 openproject 中重置管理员密码

How to reset admin password in openproject dockerized

我使用 docker 在 CentOS 7 中安装了 openproject。 我更改了管理员密码,然后忘记了。

如何重置它?

如果设置允许(默认设置),最简单的解决方案是转到 OpenProject 安装(通过浏览器)的登录页面 (https://[host]/login) 并使用 "Forgot your password?" link 将密码重置令牌发送到为管理员帐户配置的电子邮件地址。

如果该选项不存在,您必须连接到 docker 容器以获取终端 window,例如按照这个 how-to.

打开 bash 后,发出:

sudo openproject run rails console

这将为您打开一个 rails 控制台。

进入后,发出:

# retrieve first admin account
admin = User.where(admin: true).first
# change the password
admin.password = admin.password_confirmation = "[The password you choose]"
# Save the change disregarding any errors
admin.save(validate: false)

如果您在安装时有多个管理员帐户,您必须在第一步中缩小正确的帐户范围,例如

# print a list of all admin accounts
pp User.where(admin: true).pluck(:id, :login, :firstname, :lastname, :mail)
# Fetch admin account by id
admin = User.where(id: "[the id]")

对于较新版本的 OpenProject, seems not to work, but I was successfull using the information in this guide:

  1. 找出容器ID:docker ps
  2. 以 root 身份连接到 docker 容器:docker exec -u root -it <CONTAINER ID> /bin/bash
  3. 使用 rails 控制台更改用户密码:
    RAILS_ENV=production bundle exec rails c
    u = User.find_by_login "admin"
    u.password=u.password_confirmation='my new password'
    u.save
    
  4. (点击 Ctrl-D 直到您回到常规终端。)