From f42fbc735a2985324acb0375f463355cf6bbf422 Mon Sep 17 00:00:00 2001 From: Markus Kahl Date: Fri, 15 Nov 2024 14:42:49 +0000 Subject: [PATCH 1/3] make sure limit_self_registration is included in saml provider hash --- .../auth_saml/app/contracts/saml/providers/base_contract.rb | 2 ++ modules/auth_saml/app/models/saml/provider/hash_builder.rb | 1 + modules/auth_saml/spec/factories/saml_provider_factory.rb | 2 ++ modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb | 1 + modules/auth_saml/spec/requests/saml_provider_callback_spec.rb | 3 ++- 5 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/auth_saml/app/contracts/saml/providers/base_contract.rb b/modules/auth_saml/app/contracts/saml/providers/base_contract.rb index 3e2a24ac82fe..2375f66cfb1c 100644 --- a/modules/auth_saml/app/contracts/saml/providers/base_contract.rb +++ b/modules/auth_saml/app/contracts/saml/providers/base_contract.rb @@ -64,6 +64,8 @@ def self.model attribute :authn_requests_signed validate :valid_certificate_key_pair + attribute :limit_self_registration + %i[mapping_mail mapping_login mapping_firstname mapping_lastname].each do |attr| attribute attr validates_presence_of attr, if: -> { model.public_send(:"#{attr}_changed?") } diff --git a/modules/auth_saml/app/models/saml/provider/hash_builder.rb b/modules/auth_saml/app/models/saml/provider/hash_builder.rb index d6bfc89f6b5c..5cbf13df8d5a 100644 --- a/modules/auth_saml/app/models/saml/provider/hash_builder.rb +++ b/modules/auth_saml/app/models/saml/provider/hash_builder.rb @@ -72,6 +72,7 @@ def to_h # rubocop:disable Metrics/AbcSize name_identifier_format:, certificate:, private_key:, + limit_self_registration:, attribute_statements: formatted_attribute_statements, request_attributes: formatted_request_attributes, uid_attribute: mapping_uid.presence diff --git a/modules/auth_saml/spec/factories/saml_provider_factory.rb b/modules/auth_saml/spec/factories/saml_provider_factory.rb index a53c2c6857c6..1862fd4adca5 100644 --- a/modules/auth_saml/spec/factories/saml_provider_factory.rb +++ b/modules/auth_saml/spec/factories/saml_provider_factory.rb @@ -43,6 +43,8 @@ idp_sso_service_url { "https://example.com/sso" } idp_slo_service_url { "https://example.com/slo" } + limit_self_registration { true } + mapping_login { Saml::Defaults::MAIL_MAPPING } mapping_mail { Saml::Defaults::MAIL_MAPPING } mapping_firstname { Saml::Defaults::FIRSTNAME_MAPPING } diff --git a/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb b/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb index 263cd698e03d..baf4378b02ef 100644 --- a/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb +++ b/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb @@ -15,6 +15,7 @@ expect(subject[:assertion_consumer_service_url]).to eq "http://#{Setting.host_name}/auth/my-saml/callback" expect(subject[:idp_sso_service_url]).to eq "https://example.com/sso" expect(subject[:idp_slo_service_url]).to eq "https://example.com/slo" + expect(subject[:limit_self_registration]).to be true attributes = subject[:attribute_statements] expect(attributes[:email]).to eq Saml::Defaults::MAIL_MAPPING.split("\n") diff --git a/modules/auth_saml/spec/requests/saml_provider_callback_spec.rb b/modules/auth_saml/spec/requests/saml_provider_callback_spec.rb index 4069e63b8226..eabbb252d350 100644 --- a/modules/auth_saml/spec/requests/saml_provider_callback_spec.rb +++ b/modules/auth_saml/spec/requests/saml_provider_callback_spec.rb @@ -42,7 +42,8 @@ digest_method: "http://www.w3.org/2001/04/xmlenc#sha256", sp_entity_id: "https://foobar.org", idp_cert:, - idp_cert_fingerprint:) + idp_cert_fingerprint:, + limit_self_registration: false) end let(:idp_cert) { nil } From 1d8023fb62368b99f82b385169c3d02ec354e85e Mon Sep 17 00:00:00 2001 From: Markus Kahl Date: Fri, 15 Nov 2024 15:04:45 +0000 Subject: [PATCH 2/3] test that false is correct in output as well --- .../auth_saml/spec/lib/open_project/auth_saml_spec.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb b/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb index baf4378b02ef..89b3bdaa3bcd 100644 --- a/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb +++ b/modules/auth_saml/spec/lib/open_project/auth_saml_spec.rb @@ -31,5 +31,15 @@ expect(security[:want_assertions_signed]).to be false expect(security[:want_assertions_encrypted]).to be false end + + context "with limit_self_registration: false" do + let!(:provider) do + create(:saml_provider, slug: "my-saml", limit_self_registration: false) + end + + it "includes the false value in the auth hash" do + expect(subject[:limit_self_registration]).to be false + end + end end end From 7aa0bafd6abc2236086de602e88c1ab77a64918a Mon Sep 17 00:00:00 2001 From: OpenProject Actions CI Date: Sat, 16 Nov 2024 03:15:15 +0000 Subject: [PATCH 3/3] update locales from crowdin [ci skip] --- config/locales/crowdin/js-zh-TW.yml | 4 +-- config/locales/crowdin/ru.seeders.yml | 26 ++++++++++--------- config/locales/crowdin/zh-TW.yml | 2 +- .../meeting/config/locales/crowdin/zh-TW.yml | 2 +- 4 files changed, 18 insertions(+), 16 deletions(-) diff --git a/config/locales/crowdin/js-zh-TW.yml b/config/locales/crowdin/js-zh-TW.yml index 07ca88c02664..2c7b05c2ec32 100644 --- a/config/locales/crowdin/js-zh-TW.yml +++ b/config/locales/crowdin/js-zh-TW.yml @@ -387,7 +387,7 @@ zh-TW: label_all_work_packages: "所有工作項目" label_and: "和" label_ascending: "昇冪" - label_author: "作者: %{user}" + label_author: "工作項目發起者: %{user}" label_avatar: "大頭貼" label_between: "介於" label_board: "面板" @@ -967,7 +967,7 @@ zh-TW: other: "其他" properties: assignee: "執行者" - author: "作者" + author: "工作項目發起者" createdAt: "建立於" description: "敘述" date: "日期" diff --git a/config/locales/crowdin/ru.seeders.yml b/config/locales/crowdin/ru.seeders.yml index 51ed2546b41a..b1b3dcb88223 100644 --- a/config/locales/crowdin/ru.seeders.yml +++ b/config/locales/crowdin/ru.seeders.yml @@ -299,18 +299,20 @@ ru: options: name: Приступая к работе text: | - Мы рады, что вы присоединились! Мы рекомендуем попробовать несколько вещей, чтобы начать работу в OpenProject. - - _Попробуйте следующие шаги:_[Backlogs]. *Пригласите новых участников к вашему проекту*: → Перейдите к [Members]({{opSetting:base_url}}/projects/your-scrum-project/members) в навигации по проекту. - 2. *Просмотр бэклога продукта и бэклогов Sprint *: → Перейти к [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) в навигации по проекту. - *Просмотр вашей панели задач*: → Перейдите на [Backlogs] ({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Нажмите на правую стрелку на Sprint → Выберите [Целевую панель](##sprint:scrum_project__version__sprint_1). - 4. *Создать новый пакет работ*: → Перейдите к [Пакеты работ → Create]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). - 5. *Создать и обновить план проекта*: → Перейдите к [плану проекта](##query:scrum_project__query__project_plan) в навигации по проекту. - 6. *Создайте вики спринта*: → Перейдите в [Backlogs]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) и откройте вики спринта из правого выпадающего меню в спринте. Вы можете редактировать [шаблон вики]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) на основе ваших потребностей. - 7. *Активировать дальнейшие модули*: → Перейдите к [настройкам проекта → Модулей]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). - - Здесь вы найдете наши [руководства пользователя](https://www. penproject.org/docs/user-guide/). - Пожалуйста, сообщите нам, если у вас есть какие-либо вопросы или нужна поддержка. Свяжитесь с нами: [support[at]openproject.com](mailto:support@openproject.com). + Мы рады, что Вы присоединились! Мы предлагаем попробовать несколько вещей, чтобы начать работу с OpenProject. + + _Попробуйте выполнить следующие шаги:_ + + 1. *Пригласите новых участников в свой проект*: → Перейдите к [Участники]({{opSetting:base_url}}/projects/your-scrum-project/members) в меню проекта. + 2. *Просмотрите бэклог Вашего продукта и бэклог спринта*: → Перейдите к [Бэклог]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) в меню проекта. + 3. *Просмотрите Вашу доску задач*: → Перейдите к [Бэклоги]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) → Нажмите стрелку вправо на Этапы → Выберите [Панель задач](##sprint:scrum_project__version__sprint_1). + 4. *Создайте новый рабочий пакет*: → Перейдите в раздел [Рабочие пакеты → Создать]({{opSetting:base_url}}/projects/your-scrum-project/work_packages/new). + 5. *Создайте и обновите план проекта*: → Перейдите к разделу [План проекта](##query:scrum_project__query__project_plan) в меню проекта. + 6. *Создайте вики спринта*: → Перейдите в раздел [Бэклоги]({{opSetting:base_url}}/projects/your-scrum-project/backlogs) и откройте вики спринта из правого выпадающего меню в спринте. Вы можете отредактировать шаблон [wiki]({{opSetting:base_url}}/projects/your-scrum-project/wiki/) в соответствии со своими потребностями. + 7. *Активируйте дополнительные модули*: → Перейдите в раздел [Настройки проекта → Модули]({{opSetting:base_url}}/projects/your-scrum-project/settings/modules). + + Здесь Вы найдете наши [руководства пользователя](https://www.openproject.org/docs/user-guide/). + Пожалуйста, сообщите нам, если у Вас возникнут вопросы или Вам понадобится поддержка. Свяжитесь с нами: [support[at]openproject.com](mailto:support@openproject.com). item_5: options: name: Пакеты работ diff --git a/config/locales/crowdin/zh-TW.yml b/config/locales/crowdin/zh-TW.yml index bf7b2d41e20f..4c4d5fb90d5b 100644 --- a/config/locales/crowdin/zh-TW.yml +++ b/config/locales/crowdin/zh-TW.yml @@ -1273,7 +1273,7 @@ zh-TW: assigned_to: "執行者" assignee: "執行者" attachments: "附加檔" - author: "作者" + author: "工作項目發起者" base: "一般錯誤:" blocks_ids: "已被限制的工作項目 IDs" category: "類別" diff --git a/modules/meeting/config/locales/crowdin/zh-TW.yml b/modules/meeting/config/locales/crowdin/zh-TW.yml index 6b20d71eb236..d2eabd4a0c1c 100644 --- a/modules/meeting/config/locales/crowdin/zh-TW.yml +++ b/modules/meeting/config/locales/crowdin/zh-TW.yml @@ -43,7 +43,7 @@ zh-TW: start_time_hour: "開始時間" meeting_agenda_item: title: "標題" - author: "作者" + author: "會議發起者" duration_in_minutes: "分鐘" description: "備註" presenter: "簡報者"