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