Skip to content

Commit 2d972e1

Browse files
Release OpenProject 12.1.1
2 parents 49adef8 + 61c2636 commit 2d972e1

File tree

66 files changed

+379
-297
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+379
-297
lines changed

app/models/queries/queries.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ module Queries::Queries
3434
::Queries::Register.register(QueryQuery) do
3535
filter Filters::ProjectFilter
3636
filter Filters::ProjectIdentifierFilter
37-
filter Filters::HiddenFilter
3837
filter Filters::UpdatedAtFilter
3938
filter Filters::IdFilter
4039
end

app/models/queries/queries/filters/hidden_filter.rb

Lines changed: 0 additions & 35 deletions
This file was deleted.

app/models/setting.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -325,15 +325,20 @@ def self.deserialize(name, value)
325325
definition = Settings::Definition[name]
326326

327327
if definition.serialized? && value.is_a?(String)
328-
YAML::safe_load(value, permitted_classes: [Symbol, ActiveSupport::HashWithIndifferentAccess, Date, Time])
329-
.tap { |maybe_hash| maybe_hash.try(:deep_stringify_keys!) }
328+
YAML::safe_load(value, permitted_classes: [Symbol, ActiveSupport::HashWithIndifferentAccess, Date, Time, URI::Generic])
329+
.tap { |maybe_hash| normalize_hash!(maybe_hash) if maybe_hash.is_a?(Hash) }
330330
elsif value != '' && !value.nil?
331331
read_formatted_setting(value, definition.format)
332332
else
333333
definition.format == :string ? value : nil
334334
end
335335
end
336336

337+
def self.normalize_hash!(hash)
338+
hash.deep_stringify_keys!
339+
hash.deep_transform_values! { |v| v.is_a?(URI::Generic) ? v.to_s : v }
340+
end
341+
337342
def self.read_formatted_setting(value, format)
338343
case format
339344
when :boolean

app/views/roles/_permissions.html.erb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ See COPYRIGHT and LICENSE files for more details.
3030
<% permissions.each do |mod, mod_permissions| %>
3131
<% global_prefix = show_global_role ? 'fieldset--global--' : 'fieldset--' %>
3232
<% module_name = mod.blank? ? 'fieldset--global--' + Project.model_name.human.downcase.gsub(' ', '_') : global_prefix + l_or_humanize(mod, prefix: 'project_module_').downcase.gsub(' ', '_') %>
33-
<fieldset class="form--fieldset -collapsible" id="<%= module_name %>">
33+
<% module_id = module_name.parameterize %>
34+
<fieldset class="form--fieldset -collapsible" id="<%= module_id %>">
3435
<legend class="form--fieldset-legend">
3536
<% if mod.blank? %>
3637
<%= show_global_role ? t(:label_global) : Project.model_name.human %>
@@ -40,7 +41,7 @@ See COPYRIGHT and LICENSE files for more details.
4041
</legend>
4142
<div class="form--toolbar">
4243
<span class="form--toolbar-item">
43-
(<%= check_all_links module_name %>)
44+
(<%= check_all_links module_id %>)
4445
</span>
4546
</div>
4647
<div class="-columns-2">

config/constants/settings/definition.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ class << self
138138
# Will serve to be validated against. A lambda can be provided returning an array in case
139139
# the array needs to be evaluated dynamically. In case of e.g. boolean format, setting
140140
# an allowed array is not necessary.
141+
# @param [nil] env_alias Alternative for the default env name to also look up. E.g. with the alias set to
142+
# `OPENPROJECT_2FA` for a definition with the name `two_factor_authentication`, the value is fetched
143+
# from the ENV OPENPROJECT_2FA as well.
141144
def add(name,
142145
value:,
143146
format: nil,
@@ -345,7 +348,9 @@ def env_name_unprefixed(definition)
345348
end
346349

347350
def env_name_alias(definition)
348-
"#{ENV_PREFIX}#{definition.env_alias.upcase}" if definition.env_alias
351+
return unless definition.env_alias
352+
353+
definition.env_alias.upcase
349354
end
350355

351356
##

config/constants/settings/definitions.rb

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
writable: false
9797

9898
add :auth_source_sso,
99-
format: :string,
99+
format: :hash,
100100
value: nil,
101101
writable: false
102102

@@ -347,11 +347,13 @@
347347
add :email_delivery_configuration,
348348
value: 'inapp',
349349
allowed: %w[inapp legacy],
350-
writable: false
350+
writable: false,
351+
env_alias: 'EMAIL_DELIVERY_CONFIGURATION'
351352

352353
add :email_delivery_method,
353354
format: :symbol,
354-
value: nil
355+
value: nil,
356+
env_alias: 'EMAIL_DELIVERY_METHOD'
355357

356358
add :emails_footer,
357359
value: {
@@ -802,9 +804,16 @@
802804
value: true,
803805
writable: false
804806

807+
add :smtp_authentication,
808+
format: :string,
809+
value: 'plain',
810+
writable: false,
811+
env_alias: 'SMTP_AUTHENTICATION'
812+
805813
add :smtp_enable_starttls_auto,
806814
format: :boolean,
807-
value: false
815+
value: false,
816+
env_alias: 'SMTP_ENABLE_STARTTLS_AUTO'
808817

809818
add :smtp_openssl_verify_mode,
810819
format: :string,
@@ -814,32 +823,33 @@
814823

815824
add :smtp_ssl,
816825
format: :boolean,
817-
value: false
826+
value: false,
827+
env_alias: 'SMTP_SSL'
818828

819829
add :smtp_address,
820830
format: :string,
821-
value: ''
831+
value: '',
832+
env_alias: 'SMTP_ADDRESS'
822833

823834
add :smtp_domain,
824835
format: :string,
825-
value: 'your.domain.com'
836+
value: 'your.domain.com',
837+
env_alias: 'SMTP_DOMAIN'
826838

827839
add :smtp_user_name,
828840
format: :string,
829-
value: ''
841+
value: '',
842+
env_alias: 'SMTP_USER_NAME'
830843

831844
add :smtp_port,
832845
format: :integer,
833-
value: 587
846+
value: 587,
847+
env_alias: 'SMTP_PORT'
834848

835849
add :smtp_password,
836850
format: :string,
837-
value: ''
838-
839-
add :smtp_authentication,
840-
format: :string,
841-
value: 'plain',
842-
writable: false
851+
value: '',
852+
env_alias: 'SMTP_PASSWORD'
843853

844854
add :software_name,
845855
value: 'OpenProject'

config/locales/crowdin/js-lt.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ lt:
238238
text: >
239239
OpenProject Enterprise Edition yra pastatyta virš Community Edition. Papildomai įdėtos „premium“ savybės ir profesionalus aptarnavimas, pagrinde orientuotas į organizacijas su daugiau nei 10 vartotojų, kurie naudodami OpenProject valdo verslui kritinius projektus.
240240
unlimited: "Neribota"
241-
you_contribute: "Developers need to pay their bills, too. By upgrading to the Enterprise Edition, you will be supporting this open source community effort and contributing to its development, maintenance and continuous improvement."
241+
you_contribute: "Vystotojams taip pat reikia apmokėti sąskaitas. Pereidami į „Enterprise Edition“, jūs paremsite šį atviro kodo bendruomenės projektą ir prisidėsite prie jo vystymo, palaikymo ir pastovaus tobulinimo."
242242
custom_actions:
243243
date:
244244
specific: 'įjungta'
@@ -297,7 +297,7 @@ lt:
297297
new_features_html: >
298298
Laidoje yra kelios naujos savybės ir patobulinimai: <br> <ul class="%{list_styling_class}"> <li>BCF modulyje jūs dabar galite įrašyti savo parinktus darbų paketų filtrus, stulpelius ir pan. kaip <b>vaizdus</b> ir dalintis jais su savo komandos nariais.</li> <li><b>Komandos plano modulis</b> (Enterprise savybė) leidžia jums vizualiai priskirti užduotis komandos nariams, gauti apžvalgą kas ką daro.</li> <li>Mes <b>išleidžiame bazines agile lentas</b> bendruomenės versijai.</li> <li><b>Filtras „Įtraukti projektus“</b> palengvina pridėti skirtingus projektus į jūsų vaizdus, tokius kaip darbų paketai, kalendoriai ar komandų planai.</li> <li>Mes darbo paketų detalėse pridėjom <b>naują kortelę „Failai“</b>, kurioje bus visa įmanoma informacija apie prie darbo paketo prisegtą informaciją.</li> <li>Mes sukūrėme <b>grupėms globalius vaidmenis</b>, kuriuos galima priskirti grupėms ir sukurti supernaudotojų grupes.</li> <li>Projekto būseną dabar galima nustatyti iš platesnio reikšmių pasirinkimo.</li> </ul>
299299
label_activate: "Aktyvuoti"
300-
label_assignee: 'Assignee'
300+
label_assignee: 'Paskirtas'
301301
label_add_column_after: "Pridėti stulpelį po"
302302
label_add_column_before: "Pridėti stulpelį prieš"
303303
label_add_columns: "Pridėti stulpelių"
@@ -1155,7 +1155,7 @@ lt:
11551155
role:
11561156
label: 'Vaidmuo projekte %{project}'
11571157
no_roles_found: 'Nerasta jokių vaidmenų'
1158-
description: 'This is the role that %{principal} will receive when they join your project. The role defines which actions they are allowed to take and which information they are allowed to see. <a href="https://www.openproject.org/docs/system-admin-guide/users-permissions/roles-permissions/#roles-and-permissions" target="_blank"> Learn more about roles and permissions. </a>'
1158+
description: 'Tai yra vaidmuo, kurį %{principal} gaus, kai prisijungs prie jūsų projekto. Vaidmuo nurodo, kokius veiksmus leidžiama atlikti ir kokią informaciją galima matyti. <a href="https://www.openproject.org/docs/system-admin-guide/users-permissions/roles-permissions/#roles-and-permissions" target="_blank"> Sužinokite daugiau apie vaidmenis ir teises. </a>'
11591159
required: 'Prašome parinkti vaidmenį'
11601160
next_button: 'Kitas'
11611161
message:

config/locales/crowdin/lt.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2191,7 +2191,7 @@ lt:
21912191
permission_comment_news: "Komentuoti naujienas"
21922192
permission_commit_access: "Skaitymo/rašymo prieiga į repozitoriją"
21932193
permission_copy_projects: "Kopijuoti projekus"
2194-
permission_create_backup: "Create backup"
2194+
permission_create_backup: "Kurti atsarginę kopiją"
21952195
permission_delete_work_package_watchers: "Pašalinti stebėtojus"
21962196
permission_delete_work_packages: "Pašalinti darbų paketus"
21972197
permission_delete_messages: "Pašalinti pranešimus"
@@ -2284,7 +2284,7 @@ lt:
22842284
assigned_to_role: "Priskirtojo asmens vaidmuo"
22852285
member_of_group: "Priskirtojo asmens grupė"
22862286
assignee_or_group: "Paskirtas ar priklausanti grupė"
2287-
subproject_id: "Including subproject"
2287+
subproject_id: "Įtraukti sub-projektus"
22882288
only_subproject_id: "Tik sub-projektai"
22892289
name_or_identifier: "Pavadinimas arba identifikatorius"
22902290
repositories:

docker/prod/setup/preinstall-common.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ curl -s https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${A
2525
wget --quiet -O- https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
2626
echo "deb http://apt.postgresql.org/pub/repos/apt buster-pgdg main" > /etc/apt/sources.list.d/pgdg.list
2727

28+
# sources for dotnet runtime
29+
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
30+
wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/debian/10/prod.list
31+
2832
apt-get update -qq
2933
apt-get install -y \
3034
apt-transport-https \
@@ -37,16 +41,14 @@ apt-get install -y \
3741
postgresql-client-9.6 \
3842
postgresql-13 \
3943
postgresql-client-13 \
40-
imagemagick
44+
imagemagick \
45+
dotnet-runtime-3.1 # required for BIM edition
4146

4247
# remove any existing cluster
4348
service postgresql stop
4449
rm -rf /var/lib/postgresql/{9.6,13}
4550

4651
# Specifics for BIM edition
47-
curl 'https://dotnet.microsoft.com/download/dotnet/scripts/v1/dotnet-install.sh' -o ./dotnet-install.sh
48-
chmod +x dotnet-install.sh
49-
./dotnet-install.sh -c 3.1
5052

5153
tmpdir=$(mktemp -d)
5254
cd $tmpdir

docs/api/apiv3/openapi-spec.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ info:
6464
6565
### API Key through Basic Auth
6666
67-
Users can authenticate towards the API v3 using basic auth with `apikey` (as a string, NOT your API key) as the user name and their API key as the password.
67+
Users can authenticate towards the API v3 using basic auth with the user name `apikey` (NOT your login) and the API key as the password.
6868
Users can find their API key on their account page.
6969
7070
Example:

0 commit comments

Comments
 (0)