Redmine是个好东西

Redmine是一个不错的Tracking工具

用了有断时间了, 扩展性还是很强的, 能够适应项目管理上的很多需求,如问题跟踪、工时统计、Wiki、论坛什么的。

如果和CVS或者SVN结合起来,还可以跟踪每个Issue提交的代码。 这样方便做Code Review.

如果再多一些扩展,诸如团队成员状态、异常事项的统计等等就更好了。
<think>好的,用户之前询问了如何开发一个Redmine插件来修改登录认证,现在他们补充了Redmine版本是5.0.0.3。我需要确认之前的解决方案是否适用于这个版本,或者是否需要调整。 首先,我需要回忆Redmine 5.0的更新内容,尤其是关于认证部分的改动。可能涉及到的包括SessionsController的位置是否有变化,或者认证流程是否有新的钩子或方法需要使用。用户提到之前的回答中使用了prepend来修改SessionsController的create方法,这在5.0版本中是否仍然有效? 另外,用户希望保持原有逻辑,仅替换验证部分。可能需要确认在Redmine 5.0中,User模型的验证方法是否有所变化,比如是否有新的方法或废弃了旧的方法。例如,用户是否存在是通过User.find_by_login检查的,这个方法是否还适用。 还需要注意插件的初始化代码是否正确加载。Redmine的插件机制在5.0中是否有变动,导致需要调整init.rb中的代码?比如,是否仍然支持prepend,或者是否需要使用其他方式来覆盖控制器方法。 此外,用户提到的错误提示是否正确显示,是否需要在视图中添加特定的闪存消息处理。可能在5.0中,视图部分是否有变化,需要调整渲染方式。 最后,安装插件后的迁移步骤是否正确,是否需要运行其他命令或者处理数据库结构的变化。用户可能在安装过程中遇到问题,需要提供更详细的安装步骤或注意事项。 总结下来,我需要检查之前的代码在Redmine 5.0.0.3中的兼容性,特别是控制器、模型方法和插件加载机制,确保提供的解决方案适用于该版本,并做出必要的调整,同时提醒用户可能的注意事项。</think>Redmine 5.0.0.3 的插件开发需注意其控制器和认证逻辑的兼容性。以下是适配该版本的完整实现方案: --- ### ✅ 适配 Redmine 5.0.0.3 的插件开发 #### 1. 创建插件结构 ```bash cd /path/to/redmine/plugins mkdir redmine_custom_auth cd redmine_custom_auth mkdir -p app/controllers ``` #### 2. `init.rb` 配置 ```ruby # plugins/redmine_custom_auth/init.rb require 'redmine' Redmine::Plugin.register :redmine_custom_auth do name 'Redmine Custom Auth Plugin' author 'Your Name' description 'Custom authentication logic for Redmine 5.0.0.3' version '0.0.1' url 'http://example.com' author_url 'http://example.com' Rails.configuration.to_prepare do # Redmine 5.0 使用 SessionsController 而非 Auth::SessionsController SessionsController.prepend(CustomAuth) end end ``` #### 3. 自定义认证逻辑(`app/controllers/custom_auth.rb`) ```ruby # plugins/redmine_custom_auth/app/controllers/custom_auth.rb module CustomAuth def create username = params[:login] password = params[:password] # 1. 固定验证逻辑 if username == 'admin' && password == 'Aa12345678' user = User.find_by_login(username) if user # 2. 成功逻辑(保持原有流程) self.current_user = user cookies.permanent[:autologin] = user.autologin if params[:remember_me] user.update_last_login_on redirect_to home_path return else # 用户不存在(理论上不会触发,因已通过固定验证) flash.now[:error] = l(:notice_account_invalid_cred) render action: 'new' end else # 3. 失败逻辑 flash.now[:error] = l(:notice_account_invalid_cred) render action: 'new' end end end ``` --- ### 🔧 关键适配点说明 1. **控制器路径变化** Redmine 5.0+ 的登录控制器已从 `Auth::SessionsController` 移回 `SessionsController`,需直接 `prepend`。 2. **语言包提示** 使用 `l(:notice_account_invalid_cred)` 调用内置多语言提示(如失败提示为 "无效的用户名或密码")。 3. **User 模型兼容性** `User.find_by_login` 在 5.0 中依然有效,但建议确保 `admin` 用户存在于数据库中。 4. **安全机制** 若需长期使用,建议后续扩展为数据库验证(如通过 LDAP 或 API 调用)。 --- ### 🛠️ 安装与调试步骤 1. **安装插件** ```bash cd /path/to/redmine bundle exec rake redmine:plugins:migrate RAILS_ENV=production ``` 2. **重启服务** ```bash # 若使用 Phusion Passenger touch tmp/restart.txt ``` 3. **测试验证** - 使用 `admin` / `Aa12345678` 登录成功跳转首页 - 其他凭据失败时提示错误信息 --- ### ⚠️ 注意事项 - **备份原文件**:修改前备份原 `SessionsController` 逻辑。 - **日志调试**:可在 `create` 方法中添加 `Rails.logger.info "Custom Auth: #{username}"` 调试。 - **权限问题**:确保插件目录权限与 Redmine 其他插件一致(如 `chown -R redmine:redmine redmine_custom_auth`)。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值