ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

OpenProject 12.3.3 补丁版本深度解析:Gantt 周历、配置项与 OAuth 登录的六项关键修复

OpenProject 12.3.3 补丁版本深度解析:Gantt 周历、配置项与 OAuth 登录的六项关键修复 OpenProject 12.3.3 补丁版本深度解析Gantt 周历、配置项与 OAuth 登录的六项关键修复【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openprojectOpenProject 12.3.3 是官方于 2022-11-23 发布的补丁版本针对 Gantt 日历、BIM 版本安装、工作包跨项目移动、时区配置、欢迎文本初始化与移动端 OAuth 登录等六类问题提供了修复。本文以该版本发布说明为骨架结合当前仓库源码逐项拆解每个修复背后的实现机制、相关配置项在configuration.yml中的正确用法以及升级前需要关注的要点帮助运维与开发者理解并验证这一版本的技术变更。版本概览与升级建议项目内容版本号12.3.3发布日期2022-11-23版本类型补丁版本bugfix release建议官方推荐更新到最新版本官方在发布说明中明确表示The release contains several bug fixes and we recommend updating to the newest version.本版本包含多项缺陷修复建议升级到最新版本。与所有补丁版本一样12.3.3 不包含新功能特性专注于提升稳定性和修复已知问题。六项缺陷修复逐项拆解1. Gantt 日历周数与系统设置不一致#41327问题现象Gantt 视图中的日历周显示与管理员配置的每周起始日start of week设置不一致导致周历错位、甘特图时间轴展示混乱。实现背景从当前仓库 config/constants/settings/definition.rb 可以看到start_of_week是 OpenProject 的核心日历设置之一start_of_week: { default: nil, format: :integer, allowed: [1, 6, 7] },其中allowed: [1, 6, 7]对应 ISO 8601 的星期编号1表示周一、6表示周六、7表示周日。该设置为nil默认值时周起始日通常跟随系统 locale 或用户偏好。本次修复确保 Gantt 组件在渲染周列时正确读取该设置而非硬编码或读取错误的星期起始值。验证方式升级后在管理 → 系统设置 → 显示中修改每周起始日打开任意项目的 Gantt 视图确认周标签与设置一致即可验证修复生效。2. Ubuntu 22.04 打包安装中 BIM 版本不可用#43531问题现象在 Ubuntu 22.04 上通过官方打包packaged方式安装的 BIM 版本OpenProject BIM无法正常使用。背景说明BIMBuilding Information Modeling建筑信息模型是 OpenProject 面向建筑行业的增强版仓库中以独立模块形式存在于 modules/bim 目录。12.3.3 修复了 Ubuntu 22.04 打包安装环境下该模块的可用性问题通常与打包脚本中的依赖解析、路径配置或 systemd 服务环境有关。升级注意事项使用 Ubuntu 22.04 打包安装的 BIM 用户应优先升级到此版本若升级后仍无法启用 BIM 模块可检查打包安装时的模块清单OPENPROJECT_MODULES等环境变量是否包含bim。3. 跨项目移动工作包报错#43553问题现象将工作包Work Package从一个项目移动到另一个项目时抛出错误导致移动操作失败。实现背景工作包跨项目移动涉及类型Type、状态Status、版本Version、自定义字段Custom Field以及项目模块等多个约束的一致性校验。从源码结构看移动操作经由 app/services/work_packages/move 目录下的服务对象完成移动过程中需要对目标项目的可用类型、状态和工作流workflow进行重新映射。12.3.3 修复了在特定项目配置组合下移动时报错的问题。验证方式升级后在源项目中选中工作包通过更多操作 → 移动到其他项目选择目标项目确认移动成功后目标项目中的类型、状态与自定义字段值均正确保留。4. 无法在 configuration.yml 中设置用户默认时区#44737问题现象管理员在configuration.yml中设置user_default_timezone后不生效新用户无法获得预期的默认时区。配置用法该配置项在 config/constants/settings/definition.rb 中定义如下user_default_timezone: { default: nil, format: :string, allowed: ActiveSupport::TimeZone.all.map { |tz| tz.tzinfo.canonical_identifier }.sort.uniq [nil] },关键约束取值必须是 RailsActiveSupport::TimeZone的规范化标识符canonical identifier例如Europe/Berlin、Asia/Shanghai、America/New_York而不是缩写如CET、CST默认值为nil表示不强制用户各自使用自己的偏好时区该设置同时可在管理界面系统设置 → 用户 → 默认时区中配置。正确配置示例config/configuration.ymldefault: user_default_timezone: Europe/Berlin源码佐证从 app/models/users/scopes/with_time_zone.rb 可以看到时区查询在用户无显式偏好时回退到该默认值COALESCE( NULLIF(user_preferences.settings-time_zone, ), #{user_default_time_zone.to_sql} ) IN (?) def user_default_time_zone Arel::Nodes::build_quoted(Setting.user_default_timezone.presence || Etc/UTC) end即用户个人偏好为空时依次回退到user_default_timezone若仍为空则回退到Etc/UTC。12.3.3 修复了该值从configuration.yml读取后未能正确写入Setting的问题。5. configuration.yml 中设置 welcome_text 导致首次安装失败#44755问题现象若在configuration.yml中预先设置了welcome_text全新安装初始化过程会失败。配置用法welcome_text与相关配置项在 config/constants/settings/definition.rb 中定义welcome_text: { format: :string, default: nil }, welcome_title: { format: :string, default: nil }, welcome_on_homescreen: { default: false },其中welcome_text首页欢迎块的正文内容支持富文本格式welcome_title首页欢迎块的标题welcome_on_homescreen是否在首页显示欢迎块默认false。实现背景首页欢迎块的渲染逻辑位于 config/initializers/homescreen.rb只有在满足条件时才展示{ name: welcome, if: Proc.new { Setting.welcome_on_homescreen? Setting.welcome_text.present? } },而欢迎文本的表单配置在 app/forms/admin/settings/general_settings/welcome_block_form.rb管理界面通过富文本编辑器维护该内容。12.3.3 修复了初始化seed阶段读取welcome_text时与系统设置初始化流程的冲突——此前在数据库首次迁移尚未完成时访问该设置会触发异常。正确配置示例default: welcome_title: Welcome to OpenProject welcome_text: Your project management hub welcome_on_homescreen: true验证方式在全新环境中写入上述配置后执行安装流程确认初始化顺利完成登录后首页正确显示欢迎块内容。6. OAuth 登录 POST 在移动端 Safari 因 CSP 失效#44772问题现象在 iOS 移动端 Safari 浏览器中通过 OAuth 提供方如 Google、GitHub 或企业 SSO登录时回调 POST 请求因 Content Security PolicyCSP被拦截而失败。实现背景OAuth 回调由 app/controllers/omni_auth_login_controller.rb 处理其中callback动作在 第 51-56 行 接收 OmniAuth 认证哈希并完成登录def callback params[:back_url] omniauth_back_url if remember_back_url? auth_hash request.env[omniauth.auth] handle_omniauth_authentication(auth_hash) end同时该控制器在第 36 行注释说明disable CSRF protection since that should be covered by the omniauth strategy禁用 CSRF 保护因为应由 OmniAuth 策略覆盖。CSP 相关设置OpenProject 的 CSP 指令通过csp_*系列配置项管理例如 config/constants/settings/definition.rb 中的csp_img_srccsp_img_src: { format: :array, default: %w(* data: blob:), writable: false, description: Allowed sources for the CSP img-src directive. },这类 CSP 配置默认writable: false由系统内置的 Secure Headers 中间件统一管理。12.3.3 修复了移动端 Safari 对 OAuth 回调 POST 的 CSP 拦截问题通常涉及form-action或连接指令的放行规则确保第三方身份认证的回调请求不被浏览器安全策略误拦截。验证方式在 iPhone/iPad 的 Safari 中配置任一 OAuth 登录方式如 Google 登录或自建 OIDC升级后确认可完整走完跳转外部认证 → 回调 → 登录成功的流程且控制台无 CSP 违规报错。社区贡献与致谢官方发布说明对社区贡献者表达了感谢。本次版本中报告并定位问题的社区成员包括Sven KunzeChristina VechkanovaMario Haustein社区成员在 OpenProject 官方社区community.openproject.org的工作包跟踪系统中提交缺陷报告、复现步骤与修复建议是补丁版本得以快速发布的重要推动力。若你遇到相关问题同样可以在社区中提交缺陷报告并附带复现信息。升级与验证清单基于以上六项修复建议按以下清单完成升级验证Gantt 周历核对系统设置中的每周起始日与 Gantt 视图实际渲染是否一致BIM 版本Ubuntu 22.04 打包安装用户确认 BIM 模块可正常启用跨项目移动在不同项目配置组合下测试工作包移动操作默认时区确认configuration.yml中的user_default_timezone使用规范化的 IANA 时区标识符如Europe/Berlin并能正确生效欢迎文本确认welcome_text配置在全新安装时不再阻塞初始化流程OAuth 登录在移动端 Safari 上完整走通 OAuth/OmniAuth 登录流程。通过本文对六项修复及背后源码机制的拆解可以看到 12.3.3 虽然是一个小版本补丁但覆盖了从日历渲染、安装脚本到安全策略、配置加载等多个关键链路值得所有生产环境用户及时跟进升级。【免费下载链接】openprojectOpenProject is the leading open source project management software for product, project and portfolio management. A powerful Jira alternative with agile planning, issue tracking, roadmaps, Gantt charts, time tracking, collaboration features, and more. Available on premises or in the cloud. ⭐ Star us on GitHub项目地址: https://gitcode.com/GitHub_Trending/op/openproject创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表