Redmine无法登陆错误must_change_passwd解决

来源:互联网 发布:godaddy 获取域名证书 编辑:程序博客网 时间:2024/06/05 10:56
  • 安装Redmine及一些插件,配置DB文件后,插件可以正常显示,但admin账户无法登陆。
  • 查看log文件,报错大体如下:
NoMethodError (undefined method `must_change_passwd?' for #<User:0x00000003f08018>):app/models/user.rb:327:in `must_change_password?'app/controllers/application_controller.rb:93:in `start_user_session'app/controllers/application_controller.rb:182:in `logged_user='app/controllers/account_controller.rb:256:in `successful_authentication'app/controllers/account_controller.rb:203:in `password_authentication'app/controllers/account_controller.rb:189:in `authenticate_user'app/controllers/account_controller.rb:40:in `login'
  • 尝试1:因为说未定义must_change_passwd方法,所以让调用该方法的地方,不调用此方法。
  • 结果1:肯定是失败了,并且无限循环的输出一些奇怪的log。

  • 尝试(目前看来似乎是正确的):执行如下语句

# 执行路径大体应该是redminex.x.x/apps/redmine/hotdocs/# 总之就是在配置redmine插件时,执行rake命令的路径RAILS_ENV=production bundle exec rake db:migrate:reset
  • 原因:应该是配置db后,没有去更新一些访问db的规则。即没有更新db/schema.rb文件。
  • 更新1:BZ是在本地配一个Redmine,执行“RAILS_ENV=production bundle exec rake db:migrate:reset”后。服务器那边的Redmine无法登陆。原因是数据库中,对应redmine(prodution环境)的db重新创建,导致原服务器redmine使用的production环境的db变化。
  • 更新2:使用上述方法,在移植的redmine时,如果两个redmin版本不相同。会造成生成的对应production环境的db文件不匹配,导致redmine部分页面错误。修复Redmine(主服务器)的方法为,在主服务器redmine对应目录(参上)执行下述命令:
# 该命令会drop掉对应production环境的db,然后重新create# 执行该命令时,如果因权限命令报错,修改配置文件config/database.yml中,对应prodcution环境db的配置,确保配置的用户有权限修改DB# 之后,看情况,赋予相应用户操作production对应db的各种表的操作权限RAILS_ENV=production bundle exec rake db:migrate:reset
  • 注意:其实在配置本地redmine(production环境的db)与服务器redmine(production环境db)同名,导致该db被重新创建。从而造成此问题。所以,对于一些配置资料,如果写的不是很详细,那么尽可能把每一步、每一条命令搞懂,以免带来一些棘手的问题。