diff --git a/.github/workflows/packager.yml b/.github/workflows/packager.yml index 30ec8fb6abd..095491ece13 100644 --- a/.github/workflows/packager.yml +++ b/.github/workflows/packager.yml @@ -1,10 +1,11 @@ name: Package on: push: + tags: + - v* branches: - packaging/* - release/* - - stable/* workflow_dispatch: schedule: - cron: '0 3 * * *' # Daily at 03:00 @@ -42,6 +43,12 @@ jobs: run: | VERSION=$(ruby -r ./lib/open_project/version.rb -e "puts OpenProject::VERSION") echo "version=$VERSION" >> $GITHUB_OUTPUT + if [[ "${{ github.ref_type }}" == "tag" ]]; then + MAJOR=$(ruby -r ./lib/open_project/version.rb -e "puts OpenProject::VERSION::MAJOR") + echo "channel=stable/${MAJOR}" >> $GITHUB_OUTPUT + else + echo "channel=${{ github.ref_name }}" >> $GITHUB_OUTPUT + fi - name: Package uses: pkgr/action/package@main id: package @@ -58,5 +65,5 @@ jobs: target: ${{ matrix.target }} token: ${{ secrets.PACKAGER_PUBLISH_TOKEN }} repository: opf/openproject - channel: ${{ github.ref_name }} + channel: ${{ steps.setup.outputs.channel }} file: ${{ steps.package.outputs.package_path }} diff --git a/Gemfile b/Gemfile index c3f7959796b..78d1a139ecd 100644 --- a/Gemfile +++ b/Gemfile @@ -208,7 +208,7 @@ gem "aws-sdk-core", "~> 3.241" # File upload via fog + screenshots on travis gem "aws-sdk-s3", "~> 1.213" -gem "openproject-token", "~> 8.8.0" +gem "openproject-token", "~> 8.8.2" gem "plaintext", "~> 0.3.7" diff --git a/Gemfile.lock b/Gemfile.lock index 0b92465c7e6..48a73a9c7d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -905,7 +905,7 @@ GEM activesupport (>= 7.2.0) openproject-octicons (>= 19.30.1) view_component (>= 3.1, < 5.0) - openproject-token (8.8.0) + openproject-token (8.8.2) activemodel openssl (4.0.1) openssl-signature_algorithm (1.3.0) @@ -1689,7 +1689,7 @@ DEPENDENCIES openproject-reporting! openproject-storages! openproject-team_planner! - openproject-token (~> 8.8.0) + openproject-token (~> 8.8.2) openproject-two_factor_authentication! openproject-webhooks! openproject-wikis! @@ -2071,7 +2071,7 @@ CHECKSUMS openproject-reporting (1.0.0) openproject-storages (1.0.0) openproject-team_planner (1.0.0) - openproject-token (8.8.0) sha256=832a493e05dcce806134faf63ae8011cc5a48422fbed9ebb552f8028912954d4 + openproject-token (8.8.2) sha256=081cbff7269d92a82fa1d63e9e09c87b70d47d7aefadcbb80d1e7368bc2cf096 openproject-two_factor_authentication (1.0.0) openproject-webhooks (1.0.0) openproject-wikis (1.0.0) diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index ca726fe9136..3f3f2d6a9c6 100644 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -111,8 +111,10 @@ class AdminController < ApplicationController @smtp_addr = ActionMailer::Base.smtp_settings[:address] @safe_ip = OpenProject::SsrfProtection.safe_ip?(@smtp_addr) - if !@safe_ip - flash[:error] = I18n.t :notice_smtp_address_unsafe, address: @smtp_addr + unless @safe_ip + flash[:error] = I18n.t :notice_smtp_address_unsafe_env_hint, + address: @smtp_addr, + env_name: Settings::Definition[:ssrf_protection_ip_allowlist].env_name redirect_to admin_settings_mail_notifications_path, status: :see_other end diff --git a/config/constants/settings/definition.rb b/config/constants/settings/definition.rb index 6f18a21b143..2456c5636ae 100644 --- a/config/constants/settings/definition.rb +++ b/config/constants/settings/definition.rb @@ -1400,6 +1400,14 @@ module Settings end end + def env_name + self.class.env_name(self) + end + + def possible_env_names + self.class.possible_env_names(self) + end + def derive_default(default) @default = default.is_a?(Hash) ? default.deep_stringify_keys : default @default.freeze @@ -1689,8 +1697,6 @@ module Settings ].compact end - public :possible_env_names - def env_name_nested(definition) "#{ENV_PREFIX}#{definition.name.upcase.gsub('_', '__')}" end @@ -1709,6 +1715,8 @@ module Settings definition.env_alias.upcase end + public :possible_env_names, :env_name + ## # Extract the configuration value from the given environment variable # using YAML. diff --git a/config/locales/crowdin/af.yml b/config/locales/crowdin/af.yml index 8dd1ab60278..31462553e6a 100644 --- a/config/locales/crowdin/af.yml +++ b/config/locales/crowdin/af.yml @@ -4209,7 +4209,7 @@ af: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/ar.yml b/config/locales/crowdin/ar.yml index 1d9d1a10364..8e09304a361 100644 --- a/config/locales/crowdin/ar.yml +++ b/config/locales/crowdin/ar.yml @@ -4437,7 +4437,7 @@ ar: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "لم يتم حذف المشروع." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "اتصال ناجح." notice_successful_create: "إنشاء ناجح." notice_successful_delete: "حذف ناجح." diff --git a/config/locales/crowdin/az.yml b/config/locales/crowdin/az.yml index 1c5cbe941e5..49b97ec5e7b 100644 --- a/config/locales/crowdin/az.yml +++ b/config/locales/crowdin/az.yml @@ -4209,7 +4209,7 @@ az: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/be.yml b/config/locales/crowdin/be.yml index af21e09648e..4a8565f774f 100644 --- a/config/locales/crowdin/be.yml +++ b/config/locales/crowdin/be.yml @@ -4323,7 +4323,7 @@ be: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/bg.yml b/config/locales/crowdin/bg.yml index 097d8d3fc9c..c40eadfd279 100644 --- a/config/locales/crowdin/bg.yml +++ b/config/locales/crowdin/bg.yml @@ -4209,7 +4209,7 @@ bg: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Проектът не е изтрит." notice_project_not_found: "Проектът не е намерен." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Успешна връзка." notice_successful_create: "Успешно създаване." notice_successful_delete: "Успешно изтриване." diff --git a/config/locales/crowdin/ca.yml b/config/locales/crowdin/ca.yml index e9e47fb3969..a3840f9b274 100644 --- a/config/locales/crowdin/ca.yml +++ b/config/locales/crowdin/ca.yml @@ -4203,7 +4203,7 @@ ca: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "El projecte no s'ha suprimit." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "S'ha connectat correctament." notice_successful_create: "Creat correctament." notice_successful_delete: "Esborrat correctament." diff --git a/config/locales/crowdin/ckb-IR.yml b/config/locales/crowdin/ckb-IR.yml index 5a6ee65394a..5e172c2fb8c 100644 --- a/config/locales/crowdin/ckb-IR.yml +++ b/config/locales/crowdin/ckb-IR.yml @@ -4209,7 +4209,7 @@ ckb-IR: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/cs.yml b/config/locales/crowdin/cs.yml index 11e5050912f..460d252f7d2 100644 --- a/config/locales/crowdin/cs.yml +++ b/config/locales/crowdin/cs.yml @@ -4322,7 +4322,7 @@ cs: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projekt nebyl odstraněn." notice_project_not_found: "Projekt nebyl nalezen." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Úspěšné připojení." notice_successful_create: "Úspěšné vytvoření." notice_successful_delete: "Úspěšné odstranění." diff --git a/config/locales/crowdin/da.yml b/config/locales/crowdin/da.yml index 165280fc7e2..6ac7a05f16e 100644 --- a/config/locales/crowdin/da.yml +++ b/config/locales/crowdin/da.yml @@ -4207,7 +4207,7 @@ da: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projektet blev ikke slettet." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Forbindelse gennemført." notice_successful_create: "Oprettelse gennemført." notice_successful_delete: "Sletning gennemført." diff --git a/config/locales/crowdin/de.yml b/config/locales/crowdin/de.yml index e12bae225c1..ac7954d9227 100644 --- a/config/locales/crowdin/de.yml +++ b/config/locales/crowdin/de.yml @@ -4201,7 +4201,7 @@ de: notice_parent_item_not_found: "Übergeordnetes Element nicht gefunden." notice_project_not_deleted: "Das Projekt wurde nicht gelöscht." notice_project_not_found: "Projekt nicht gefunden." - notice_smtp_address_unsafe: "Die SMTP-Adresse %{address} ist nicht sicher. Bitte fügen Sie sie zu OPENPROJECT_SSRF_PROTECTION_ALLOWLIST hinzu." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Verbindung erfolgreich." notice_successful_create: "Erfolgreich angelegt." notice_successful_delete: "Erfolgreich gelöscht." diff --git a/config/locales/crowdin/el.yml b/config/locales/crowdin/el.yml index f20b4a008f2..9ee312c8da4 100644 --- a/config/locales/crowdin/el.yml +++ b/config/locales/crowdin/el.yml @@ -4204,7 +4204,7 @@ el: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Το έργο δεν διαγράφηκε." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Επιτυχής σύνδεση." notice_successful_create: "Επιτυχής δημιουργία." notice_successful_delete: "Επιτυχής διαγραφή." diff --git a/config/locales/crowdin/eo.yml b/config/locales/crowdin/eo.yml index 0e2436cab51..266e900f561 100644 --- a/config/locales/crowdin/eo.yml +++ b/config/locales/crowdin/eo.yml @@ -4209,7 +4209,7 @@ eo: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/es.yml b/config/locales/crowdin/es.yml index 2b50265d225..e38267c9e15 100644 --- a/config/locales/crowdin/es.yml +++ b/config/locales/crowdin/es.yml @@ -4206,7 +4206,7 @@ es: notice_parent_item_not_found: "Elemento padre no encontrado." notice_project_not_deleted: "El proyecto no fue eliminado." notice_project_not_found: "Proyecto no encontrado." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Conexión exitosa." notice_successful_create: "Creación exitosa." notice_successful_delete: "Eliminado con éxito." diff --git a/config/locales/crowdin/et.yml b/config/locales/crowdin/et.yml index 738a01823a4..2097a65a155 100644 --- a/config/locales/crowdin/et.yml +++ b/config/locales/crowdin/et.yml @@ -4209,7 +4209,7 @@ et: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projekti ei ole kustutatud." notice_project_not_found: "Projekti ei leitud." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Ühenduse loomine õnnestus." notice_successful_create: "Loomine õnnestus." notice_successful_delete: "Kustutamine õnnestus." diff --git a/config/locales/crowdin/eu.yml b/config/locales/crowdin/eu.yml index e3b12c424ef..d256c03af4d 100644 --- a/config/locales/crowdin/eu.yml +++ b/config/locales/crowdin/eu.yml @@ -4209,7 +4209,7 @@ eu: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/fa.yml b/config/locales/crowdin/fa.yml index 812fbdc4f9e..78fd1f9d79d 100644 --- a/config/locales/crowdin/fa.yml +++ b/config/locales/crowdin/fa.yml @@ -4209,7 +4209,7 @@ fa: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/fi.yml b/config/locales/crowdin/fi.yml index 35b82a62e43..a7244449a04 100644 --- a/config/locales/crowdin/fi.yml +++ b/config/locales/crowdin/fi.yml @@ -4209,7 +4209,7 @@ fi: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Yhteyden muodostus onnistui." notice_successful_create: "Luonti onnistui." notice_successful_delete: "Poisto onnistui." diff --git a/config/locales/crowdin/fil.yml b/config/locales/crowdin/fil.yml index 12b3b1603a5..ab0051bcdf2 100644 --- a/config/locales/crowdin/fil.yml +++ b/config/locales/crowdin/fil.yml @@ -4209,7 +4209,7 @@ fil: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Ang proyekto ay hindi nabura." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Matagumpay na ikonekta." notice_successful_create: "Matagumpay pagkalikha." notice_successful_delete: "Matagumpay ang pagtanggal." diff --git a/config/locales/crowdin/fr.yml b/config/locales/crowdin/fr.yml index d745569c87e..8ae638ca522 100644 --- a/config/locales/crowdin/fr.yml +++ b/config/locales/crowdin/fr.yml @@ -4207,7 +4207,7 @@ fr: notice_parent_item_not_found: "L'élément parent est introuvable." notice_project_not_deleted: "Le projet n'a pas été supprimé." notice_project_not_found: "Projet introuvable." - notice_smtp_address_unsafe: "L'adresse SMTP %{address} n'est pas sûre. Veuillez l'ajouter à OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Connexion réussie." notice_successful_create: "Création réussie." notice_successful_delete: "Suppression réussie." diff --git a/config/locales/crowdin/he.yml b/config/locales/crowdin/he.yml index b1940bb79bf..17be71154c6 100644 --- a/config/locales/crowdin/he.yml +++ b/config/locales/crowdin/he.yml @@ -4323,7 +4323,7 @@ he: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/hi.yml b/config/locales/crowdin/hi.yml index 4395a65798e..6b5d70bd0e4 100644 --- a/config/locales/crowdin/hi.yml +++ b/config/locales/crowdin/hi.yml @@ -4207,7 +4207,7 @@ hi: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/hr.yml b/config/locales/crowdin/hr.yml index 4542c71125c..2e0e5a37496 100644 --- a/config/locales/crowdin/hr.yml +++ b/config/locales/crowdin/hr.yml @@ -4266,7 +4266,7 @@ hr: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projekt nije izbrisan." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Uspješna spojen." notice_successful_create: "Uspješno kreirano." notice_successful_delete: "Brisanje uspješno." diff --git a/config/locales/crowdin/hu.yml b/config/locales/crowdin/hu.yml index e93409dfc06..f5af9fffa46 100644 --- a/config/locales/crowdin/hu.yml +++ b/config/locales/crowdin/hu.yml @@ -4207,7 +4207,7 @@ hu: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "A projekt nem lett törölve." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Sikeresen létrejött a kapcsolat." notice_successful_create: "Sikeres létrehozás." notice_successful_delete: "Sikeres törlés." diff --git a/config/locales/crowdin/id.yml b/config/locales/crowdin/id.yml index a7556fd428a..44c0c8fac20 100644 --- a/config/locales/crowdin/id.yml +++ b/config/locales/crowdin/id.yml @@ -4148,7 +4148,7 @@ id: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Project tidak dihapus." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Sambungan berhasil." notice_successful_create: "Berhasil dibuat." notice_successful_delete: "Berhasil dihapus." diff --git a/config/locales/crowdin/it.yml b/config/locales/crowdin/it.yml index 90c97d8dcce..6fc282640d4 100644 --- a/config/locales/crowdin/it.yml +++ b/config/locales/crowdin/it.yml @@ -4206,7 +4206,7 @@ it: notice_parent_item_not_found: "L'elemento genitore non è stato trovato." notice_project_not_deleted: "Il progetto non è stato eliminato." notice_project_not_found: "Progetto non trovato." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Connesso con successo." notice_successful_create: "Creato con successo." notice_successful_delete: "Cancellato con successo." diff --git a/config/locales/crowdin/ja.yml b/config/locales/crowdin/ja.yml index 241e10bfefa..a266d2d5d6b 100644 --- a/config/locales/crowdin/ja.yml +++ b/config/locales/crowdin/ja.yml @@ -4151,7 +4151,7 @@ ja: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "プロジェクトを削除していません。" notice_project_not_found: "プロジェクトが見つかりません。" - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "正常に接続しました。" notice_successful_create: "正常に作成しました。" notice_successful_delete: "正常に削除しました。" diff --git a/config/locales/crowdin/ka.yml b/config/locales/crowdin/ka.yml index c624053d5de..67d57f04cc4 100644 --- a/config/locales/crowdin/ka.yml +++ b/config/locales/crowdin/ka.yml @@ -4209,7 +4209,7 @@ ka: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/kk.yml b/config/locales/crowdin/kk.yml index 68f8f5ab02a..7733ec34ca1 100644 --- a/config/locales/crowdin/kk.yml +++ b/config/locales/crowdin/kk.yml @@ -4209,7 +4209,7 @@ kk: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/ko.yml b/config/locales/crowdin/ko.yml index ff189b93f3b..fa6354fd687 100644 --- a/config/locales/crowdin/ko.yml +++ b/config/locales/crowdin/ko.yml @@ -4152,7 +4152,7 @@ ko: notice_parent_item_not_found: "부모 항목을 찾을 수 없습니다." notice_project_not_deleted: "프로젝트가 삭제되지 않았습니다." notice_project_not_found: "프로젝트를 찾을 수 없습니다." - notice_smtp_address_unsafe: "SMTP 주소 %{address}은(는) 안전하지 않습니다. OPENPROJECT_SSRF_PROTECTION_ALLOWLIST에 추가하세요." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "연결에 성공했습니다." notice_successful_create: "생성에 성공했습니다." notice_successful_delete: "삭제에 성공했습니다." diff --git a/config/locales/crowdin/lt.yml b/config/locales/crowdin/lt.yml index 28a071700ee..efb0d065aa9 100644 --- a/config/locales/crowdin/lt.yml +++ b/config/locales/crowdin/lt.yml @@ -4320,7 +4320,7 @@ lt: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projektas nebuvo panaikintas." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Sėkmingas susijungimas." notice_successful_create: "Sėkmingas sukūrimas." notice_successful_delete: "Sėkmingas panaikinimas." diff --git a/config/locales/crowdin/lv.yml b/config/locales/crowdin/lv.yml index 5dac935c88e..1db4f4c270b 100644 --- a/config/locales/crowdin/lv.yml +++ b/config/locales/crowdin/lv.yml @@ -4266,7 +4266,7 @@ lv: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/mn.yml b/config/locales/crowdin/mn.yml index 98bb0981dd7..ae2ba14fce3 100644 --- a/config/locales/crowdin/mn.yml +++ b/config/locales/crowdin/mn.yml @@ -4209,7 +4209,7 @@ mn: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/ms.yml b/config/locales/crowdin/ms.yml index 6f080f18f70..b5544415285 100644 --- a/config/locales/crowdin/ms.yml +++ b/config/locales/crowdin/ms.yml @@ -4150,7 +4150,7 @@ ms: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projek tersebut tidak dipadam." notice_project_not_found: "Projek tidak ditemui." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Sambungan berjaya." notice_successful_create: "Penciptaan yang berjaya." notice_successful_delete: "Pemadaman yang berjaya." diff --git a/config/locales/crowdin/ne.yml b/config/locales/crowdin/ne.yml index c2337ba94ea..28f107c8494 100644 --- a/config/locales/crowdin/ne.yml +++ b/config/locales/crowdin/ne.yml @@ -4209,7 +4209,7 @@ ne: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/nl.yml b/config/locales/crowdin/nl.yml index aa24f6dc618..b17ffaa38c7 100644 --- a/config/locales/crowdin/nl.yml +++ b/config/locales/crowdin/nl.yml @@ -4204,7 +4204,7 @@ nl: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Het project is niet verwijderd." notice_project_not_found: "Project niet gevonden." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Geslaagde verbinding." notice_successful_create: "Aanmaak geslaagd." notice_successful_delete: "Verwijdering geslaagd." diff --git a/config/locales/crowdin/no.yml b/config/locales/crowdin/no.yml index 2489cfc4eb8..b05690137f1 100644 --- a/config/locales/crowdin/no.yml +++ b/config/locales/crowdin/no.yml @@ -4208,7 +4208,7 @@ notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Prosjektet ble ikke slettet." notice_project_not_found: "Prosjektet ble ikke funnet." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Vellykket tilkobling." notice_successful_create: "Opprettelsen var vellykket." notice_successful_delete: "Slettingen var vellykket." diff --git a/config/locales/crowdin/pl.yml b/config/locales/crowdin/pl.yml index 09351122e62..04aaf6e47be 100644 --- a/config/locales/crowdin/pl.yml +++ b/config/locales/crowdin/pl.yml @@ -4318,7 +4318,7 @@ pl: notice_parent_item_not_found: "Nie znaleziono elementu nadrzędnego." notice_project_not_deleted: "Projekt nie został usunięty." notice_project_not_found: "Nie znaleziono projektu." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Połączenie zakończone sukcesem." notice_successful_create: "Tworzenie zakończone sukcesem." notice_successful_delete: "Usuwanie zakończone sukcesem." diff --git a/config/locales/crowdin/pt-BR.yml b/config/locales/crowdin/pt-BR.yml index bf4649be96f..5da435df53b 100644 --- a/config/locales/crowdin/pt-BR.yml +++ b/config/locales/crowdin/pt-BR.yml @@ -4205,7 +4205,7 @@ pt-BR: notice_parent_item_not_found: "Item pai não encontrado." notice_project_not_deleted: "O projeto não foi excluído." notice_project_not_found: "Projeto não encontrado." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Conectado com sucesso." notice_successful_create: "Criado com sucesso." notice_successful_delete: "Exclusão bem sucedida." diff --git a/config/locales/crowdin/pt-PT.yml b/config/locales/crowdin/pt-PT.yml index b88d3df2882..d9b50b5c425 100644 --- a/config/locales/crowdin/pt-PT.yml +++ b/config/locales/crowdin/pt-PT.yml @@ -4205,7 +4205,7 @@ pt-PT: notice_parent_item_not_found: "O elemento pai não foi encontrado." notice_project_not_deleted: "O projeto não foi eliminado." notice_project_not_found: "Projeto não encontrado." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Ligação bem sucedida." notice_successful_create: "Criado com sucesso." notice_successful_delete: "Eliminado com sucesso." diff --git a/config/locales/crowdin/ro.yml b/config/locales/crowdin/ro.yml index 7f1188093a3..6742c0cb934 100644 --- a/config/locales/crowdin/ro.yml +++ b/config/locales/crowdin/ro.yml @@ -4265,7 +4265,7 @@ ro: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Proiectul nu a fost şters." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Conectare reușită." notice_successful_create: "Creare reuşită." notice_successful_delete: "Ştergere reuşită." diff --git a/config/locales/crowdin/ru.yml b/config/locales/crowdin/ru.yml index 4f678316e71..999ed1c8670 100644 --- a/config/locales/crowdin/ru.yml +++ b/config/locales/crowdin/ru.yml @@ -4320,7 +4320,7 @@ ru: notice_parent_item_not_found: "Родительский элемент не найден." notice_project_not_deleted: "Проект удалён не был." notice_project_not_found: "Проект не найден." - notice_smtp_address_unsafe: "SMTP-адрес %{address} небезопасен. Пожалуйста, добавьте его в список OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Подключение выполнено." notice_successful_create: "Создание выполнено." notice_successful_delete: "Удаление выполнено." diff --git a/config/locales/crowdin/rw.yml b/config/locales/crowdin/rw.yml index 91cdb747bea..9cb101a9340 100644 --- a/config/locales/crowdin/rw.yml +++ b/config/locales/crowdin/rw.yml @@ -4209,7 +4209,7 @@ rw: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/si.yml b/config/locales/crowdin/si.yml index 89041da5b78..4c888d8305a 100644 --- a/config/locales/crowdin/si.yml +++ b/config/locales/crowdin/si.yml @@ -4209,7 +4209,7 @@ si: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "ව්යාපෘතිය මකා දැමුවේ නැත." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "සාර්ථක සම්බන්ධතාවයක්." notice_successful_create: "සාර්ථක නිර්මාණය." notice_successful_delete: "සාර්ථක මකාදැමීම." diff --git a/config/locales/crowdin/sk.yml b/config/locales/crowdin/sk.yml index 0cbbb3a78a9..a31637cb0c3 100644 --- a/config/locales/crowdin/sk.yml +++ b/config/locales/crowdin/sk.yml @@ -4322,7 +4322,7 @@ sk: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projekt nebol odstránený." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Úspešne pripojené." notice_successful_create: "Úspešne vytvorené." notice_successful_delete: "Úspešne zmazané." diff --git a/config/locales/crowdin/sl.yml b/config/locales/crowdin/sl.yml index 0fea188e4fc..4b044911670 100644 --- a/config/locales/crowdin/sl.yml +++ b/config/locales/crowdin/sl.yml @@ -4322,7 +4322,7 @@ sl: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projekt ni bil izbrisan." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Povezava uspela." notice_successful_create: "Ustvarjanje uspelo." notice_successful_delete: "Uspešen izbris." diff --git a/config/locales/crowdin/sr.yml b/config/locales/crowdin/sr.yml index 613a55c8318..ee64e4390f2 100644 --- a/config/locales/crowdin/sr.yml +++ b/config/locales/crowdin/sr.yml @@ -4266,7 +4266,7 @@ sr: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/sv.yml b/config/locales/crowdin/sv.yml index 716c6f87074..fe6b260b1ce 100644 --- a/config/locales/crowdin/sv.yml +++ b/config/locales/crowdin/sv.yml @@ -4209,7 +4209,7 @@ sv: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "Projektet raderades ej." notice_project_not_found: "Projektet hittas inte." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Lyckad anslutning." notice_successful_create: "Skapades utan problem." notice_successful_delete: "Raderades utan problem." diff --git a/config/locales/crowdin/th.yml b/config/locales/crowdin/th.yml index afe6747ad9f..ba4d2d5c081 100644 --- a/config/locales/crowdin/th.yml +++ b/config/locales/crowdin/th.yml @@ -4152,7 +4152,7 @@ th: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "ไม่ได้ลบโครงการ" notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "การเชื่อมต่อสำเร็จ" notice_successful_create: "สร้างเรียบร้อยแล้ว" notice_successful_delete: "ลบเรียบร้อยแล้ว" diff --git a/config/locales/crowdin/tr.yml b/config/locales/crowdin/tr.yml index 80d7341f7ab..77e7ecaff7b 100644 --- a/config/locales/crowdin/tr.yml +++ b/config/locales/crowdin/tr.yml @@ -4208,7 +4208,7 @@ tr: notice_parent_item_not_found: "Üst öğe bulunamadı." notice_project_not_deleted: "Proje silinemedi." notice_project_not_found: "Proje bulunamadı." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Bağlantı başarılı." notice_successful_create: "Oluşturma başarılı." notice_successful_delete: "Silme başarılı." diff --git a/config/locales/crowdin/uk.yml b/config/locales/crowdin/uk.yml index 4b29cda5494..a3868bf6259 100644 --- a/config/locales/crowdin/uk.yml +++ b/config/locales/crowdin/uk.yml @@ -4316,7 +4316,7 @@ uk: notice_parent_item_not_found: "Батьківський об’єкт не знайдено." notice_project_not_deleted: "Проект не був видалений." notice_project_not_found: "Проєкт не знайдено." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Підключення успішно встановлене." notice_successful_create: "Створення успішно завершене." notice_successful_delete: "Видалення успішно завершене." diff --git a/config/locales/crowdin/uz.yml b/config/locales/crowdin/uz.yml index 44bca1eb376..b223f6b21ec 100644 --- a/config/locales/crowdin/uz.yml +++ b/config/locales/crowdin/uz.yml @@ -4209,7 +4209,7 @@ uz: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/config/locales/crowdin/vi.yml b/config/locales/crowdin/vi.yml index 6960a6b315b..a97674e7712 100644 --- a/config/locales/crowdin/vi.yml +++ b/config/locales/crowdin/vi.yml @@ -4150,7 +4150,7 @@ vi: notice_parent_item_not_found: "Không tìm thấy mục gốc." notice_project_not_deleted: "Dự án không bị xóa." notice_project_not_found: "Dự án không được tìm thấy." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Kết nối thành công." notice_successful_create: "Sáng tạo thành công." notice_successful_delete: "Xóa thành công." diff --git a/config/locales/crowdin/zh-CN.yml b/config/locales/crowdin/zh-CN.yml index ce709990d47..99ffac2256a 100644 --- a/config/locales/crowdin/zh-CN.yml +++ b/config/locales/crowdin/zh-CN.yml @@ -4146,7 +4146,7 @@ zh-CN: notice_parent_item_not_found: "未找到父项" notice_project_not_deleted: "项目没有被删除" notice_project_not_found: "未找到项目。" - notice_smtp_address_unsafe: "SMTP 地址 %{address} 不安全。请将其添加到 OPENPROJECT_SSRF_PROTECTION_ALLOWLIST。" + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "成功连接。" notice_successful_create: "成功创建。" notice_successful_delete: "成功删除。" diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index 19990d2f362..f3e4e36d2c0 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -4147,7 +4147,7 @@ zh-TW: notice_parent_item_not_found: "未找到父項目。" notice_project_not_deleted: "專案沒有被刪除" notice_project_not_found: "未找到專案。" - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "連接成功" notice_successful_create: "建立成功" notice_successful_delete: "刪除成功" diff --git a/config/locales/en.yml b/config/locales/en.yml index 50fd1fb3094..d00f4a5bcae 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -4376,7 +4376,7 @@ en: notice_parent_item_not_found: "Parent item not found." notice_project_not_deleted: "The project wasn't deleted." notice_project_not_found: "Project not found." - notice_smtp_address_unsafe: "SMTP address %{address} is not safe. Please add it to OPENPROJECT_SSRF_PROTECTION_ALLOWLIST." + notice_smtp_address_unsafe_env_hint: "SMTP address %{address} is not safe. Please add it to the whitelist using the %{env_name} environment variable." notice_successful_connection: "Successful connection." notice_successful_create: "Successful creation." notice_successful_delete: "Successful deletion." diff --git a/docker/prod/Dockerfile b/docker/prod/Dockerfile index e0101b7c904..69d16e05961 100755 --- a/docker/prod/Dockerfile +++ b/docker/prod/Dockerfile @@ -141,7 +141,7 @@ ENV PGDATA=/var/openproject/pgdata COPY --from=openproject/gosu /go/bin/gosu /usr/local/bin/gosu RUN chmod +x /usr/local/bin/gosu && gosu nobody true -COPY --from=openproject/hocuspocus:17.2.1 --chown=$APP_USER:$APP_USER /app /opt/hocuspocus +COPY --from=openproject/hocuspocus:17.2.2 --chown=$APP_USER:$APP_USER /app /opt/hocuspocus # Keep node/npm in all-in-one for bundled hocuspocus even when BIM support is disabled. COPY --from=build-base /usr/local/bin/node /usr/local/bin/node COPY --from=build-base /usr/local/lib/node_modules /usr/local/lib/node_modules diff --git a/docs/getting-started/work-packages-introduction/README.md b/docs/getting-started/work-packages-introduction/README.md index 641de8a638f..64690dfec24 100644 --- a/docs/getting-started/work-packages-introduction/README.md +++ b/docs/getting-started/work-packages-introduction/README.md @@ -27,7 +27,7 @@ A work package in OpenProject can basically be everything you need to keep track ## Create a new work package -To get started, create a new work package in your project, [open the project](../projects/#open-an-existing-project) with the project drop-down menu, navigate to the **work packages module** in the project menu. +To get started, create a new work package in your project, [open the project](../projects/#open-an-existing-project) with the project dropdown menu, navigate to the **work packages module** in the project menu. Within the work packages module, click the + Create button to create a new work package. In the drop down menu, choose which type of work package you want to create, e.g. a task or a milestone. @@ -69,7 +69,7 @@ Click any of the fields to **update a work package**, e.g. description. Click th ![Update a work package in a split screen view in OpenProject](openproject_getting_started_work_packages_wp_detailed_view_edit.png) -To **update the status**, click on the highlighted displayed status on top of the form and select the new status from the drop-down. +To **update the status**, click on the highlighted displayed status on top of the form and select the new status from the dropdown. ![Work package status dropdown menu opened in a detailed work package view in OpenProject](openproject_getting_started_work_packages_update_status.png) diff --git a/docs/release-notes/17-2-2/README.md b/docs/release-notes/17-2-2/README.md new file mode 100644 index 00000000000..7a4fe6f21e3 --- /dev/null +++ b/docs/release-notes/17-2-2/README.md @@ -0,0 +1,33 @@ +--- +title: OpenProject 17.2.2 +sidebar_navigation: + title: 17.2.2 +release_version: 17.2.2 +release_date: 2026-03-17 +--- + + # OpenProject 17.2.2 + + Release date: 2026-03-17 + + We released OpenProject [OpenProject 17.2.2](https://community.openproject.org/versions/2284). + The release contains several bug fixes and we recommend updating to the newest version. + Below you will find a complete list of all changes and bug fixes. + + + + + + + +## Bug fixes and changes + + + + +- Bugfix: Send test email fails when using SMTP and TLS \[[#73099](https://community.openproject.org/wp/73099)\] +- Bugfix: Webhook sends wrong Content-Type header \[[#73145](https://community.openproject.org/wp/73145)\] +- Bugfix: Cannot set the "Used as backlog" field in the Project Version settings. \[[#73187](https://community.openproject.org/wp/73187)\] + + + diff --git a/docs/release-notes/README.md b/docs/release-notes/README.md index 87a363daf2f..1f5645ff4d1 100644 --- a/docs/release-notes/README.md +++ b/docs/release-notes/README.md @@ -13,6 +13,13 @@ Stay up to date and get an overview of the new features included in the releases +## 17.2.2 + +Release date: 2026-03-17 + +[Release Notes](17-2-2/) + + ## 17.2.1 Release date: 2026-03-16 diff --git a/docs/user-guide/team-planner/README.md b/docs/user-guide/team-planner/README.md index 7b63ec68a1a..519e76d2529 100644 --- a/docs/user-guide/team-planner/README.md +++ b/docs/user-guide/team-planner/README.md @@ -79,7 +79,7 @@ When you create a new team planner, it will be empty, like so: ![An example of a newly-created empty team planner in OpenProject](openproject_user_guide_teamplanner_new_unnamed_empty.png) -The first step in setting up your team planning calendar is to add team members. To do so, click on the **+ Assignee** button then search for the team member you would like to add from the the drop-down list (1). This will add a new row to the calendar view for that team member. +The first step in setting up your team planning calendar is to add team members. To do so, click on the **+ Assignee** button then search for the team member you would like to add from the the dropdown list (1). This will add a new row to the calendar view for that team member. Repeat this step until all relevant team members are added and then save it using the floppy disk icon in the top header (2). diff --git a/lib/open_project/patches/mail_smtp.rb b/lib/open_project/patches/mail_smtp.rb new file mode 100644 index 00000000000..0624129ee22 --- /dev/null +++ b/lib/open_project/patches/mail_smtp.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +#-- copyright +# OpenProject is an open source project management software. +# Copyright (C) the OpenProject GmbH +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License version 3. +# +# OpenProject is a fork of ChiliProject, which is a fork of Redmine. The copyright follows: +# Copyright (C) 2006-2013 Jean-Philippe Lang +# Copyright (C) 2010-2013 the ChiliProject Team +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# See COPYRIGHT and LICENSE files for more details. +#++ + +require "mail" + +## +# Correctly pass tls_hostname from Rails until [1] is resolved and the gem updated. +# +# [1] https://github.com/mikel/mail/issues/1660 +module OpenProject::Patches + module Mail + module SMTP + private + + def build_smtp_session + super.tap do |smtp| + smtp.tls_hostname = settings[:tls_hostname] if settings[:tls_hostname] + end + end + end + end +end + +OpenProject::Patches.patch_gem_version "mail", "2.9.0" do + Mail::SMTP.prepend OpenProject::Patches::Mail::SMTP +end diff --git a/lib/open_project/patches/mail_smtp_start_tls_auto_fix.rb b/lib/open_project/patches/mail_smtp_start_tls_auto_fix.rb deleted file mode 100644 index b747469035f..00000000000 --- a/lib/open_project/patches/mail_smtp_start_tls_auto_fix.rb +++ /dev/null @@ -1,25 +0,0 @@ -## -# This is a fix for a new SMTP bug introduced with Ruby 3. -# This can be removed once the official fix from the `mail` gem maintainers -# has been released and the gem bumped by us. -# -# Details: https://community.openproject.org/projects/openproject/work_packages/42385/activity -module OpenProject - module Patches - module MailSmtpStartTlsAutoHotfix - def build_smtp_session - super.tap do |smtp| - smtp.disable_starttls if disable_starttls? - end - end - - def disable_starttls? - settings[:enable_starttls_auto] == false && !settings[:enable_starttls] - end - end - end -end - -require "mail" - -Mail::SMTP.prepend OpenProject::Patches::MailSmtpStartTlsAutoHotfix diff --git a/publiccode.yml b/publiccode.yml index f8ff7188924..a4c4f9261bf 100644 --- a/publiccode.yml +++ b/publiccode.yml @@ -7,8 +7,8 @@ name: OpenProject applicationSuite: openDesk url: 'https://github.com/opf/openproject' roadmap: 'https://www.openproject.org/roadmap' -releaseDate: '2026-03-16' -softwareVersion: '17.2.1' +releaseDate: '2026-03-17' +softwareVersion: '17.2.2' developmentStatus: stable softwareType: standalone/web logo: 'publiccode_logo.svg' diff --git a/spec/controllers/admin_controller_spec.rb b/spec/controllers/admin_controller_spec.rb index 7c48017aa1b..fa567885466 100644 --- a/spec/controllers/admin_controller_spec.rb +++ b/spec/controllers/admin_controller_spec.rb @@ -143,7 +143,7 @@ RSpec.describe AdminController do it "redirects back, showing an error" do expect(response).to redirect_to admin_settings_mail_notifications_path - expect(flash[:error]).to match /OPENPROJECT_SSRF_PROTECTION_ALLOWLIST/ + expect(flash[:error]).to match /OPENPROJECT_SSRF_PROTECTION_IP_ALLOWLIST/ end end