decidim-system 0.31.8 → 0.32.0.rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -14
  3. data/app/commands/decidim/system/update_organization.rb +0 -1
  4. data/app/controllers/decidim/system/admins_controller.rb +2 -2
  5. data/app/controllers/decidim/system/api_users_controller.rb +4 -4
  6. data/app/controllers/decidim/system/devise/sessions_controller.rb +1 -1
  7. data/app/controllers/decidim/system/oauth_applications_controller.rb +2 -2
  8. data/app/controllers/decidim/system/organizations_controller.rb +4 -4
  9. data/app/forms/decidim/system/admin_form.rb +2 -7
  10. data/app/forms/decidim/system/base_organization_form.rb +6 -12
  11. data/app/forms/decidim/system/register_organization_form.rb +1 -0
  12. data/app/views/decidim/system/organizations/new.html.erb +1 -1
  13. data/app/views/decidim/system/shared/_api_users.html.erb +9 -8
  14. data/app/views/layouts/decidim/system/application.html.erb +1 -1
  15. data/config/locales/ar.yml +0 -1
  16. data/config/locales/bg.yml +0 -1
  17. data/config/locales/bs-BA.yml +0 -1
  18. data/config/locales/ca-IT.yml +0 -1
  19. data/config/locales/ca.yml +2 -3
  20. data/config/locales/cs.yml +0 -3
  21. data/config/locales/de.yml +0 -66
  22. data/config/locales/el.yml +0 -1
  23. data/config/locales/eo.yml +0 -1
  24. data/config/locales/es-MX.yml +0 -1
  25. data/config/locales/es-PY.yml +0 -1
  26. data/config/locales/es.yml +0 -1
  27. data/config/locales/eu.yml +68 -67
  28. data/config/locales/fa-IR.yml +0 -1
  29. data/config/locales/fi-plain.yml +0 -1
  30. data/config/locales/fi.yml +0 -1
  31. data/config/locales/fr-CA.yml +1 -2
  32. data/config/locales/fr.yml +0 -39
  33. data/config/locales/ga-IE.yml +0 -1
  34. data/config/locales/gl.yml +6 -186
  35. data/config/locales/hu.yml +0 -1
  36. data/config/locales/id-ID.yml +0 -1
  37. data/config/locales/is-IS.yml +1 -2
  38. data/config/locales/it.yml +0 -1
  39. data/config/locales/ja.yml +2 -6
  40. data/config/locales/kaa.yml +0 -1
  41. data/config/locales/lb.yml +0 -1
  42. data/config/locales/lt.yml +0 -1
  43. data/config/locales/lv.yml +0 -1
  44. data/config/locales/nl.yml +0 -1
  45. data/config/locales/no.yml +0 -1
  46. data/config/locales/pl.yml +0 -1
  47. data/config/locales/pt-BR.yml +0 -1
  48. data/config/locales/pt.yml +0 -1
  49. data/config/locales/ro-RO.yml +0 -1
  50. data/config/locales/ru.yml +0 -1
  51. data/config/locales/sk.yml +0 -263
  52. data/config/locales/sl.yml +0 -1
  53. data/config/locales/sr-CS.yml +0 -1
  54. data/config/locales/sv.yml +0 -5
  55. data/config/locales/tr-TR.yml +0 -1
  56. data/config/locales/uk.yml +0 -1
  57. data/config/locales/zh-CN.yml +0 -1
  58. data/config/locales/zh-TW.yml +0 -1
  59. data/decidim-system.gemspec +6 -9
  60. data/lib/decidim/system/menu.rb +1 -1
  61. data/lib/decidim/system/version.rb +1 -1
  62. data/lib/decidim/system.rb +8 -4
  63. metadata +16 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa784730e6370d4835660ad7a987fef1e4fc710c475675b95ff138f33be1b350
4
- data.tar.gz: ea920390aaf4eb46566f9f15ea3d9f707bf05c6a10ad2f5fd5a24226d7730e6a
3
+ metadata.gz: da5cdf4aa1b70b51c9dd6ddfc54b3955b4a6ba33bee1ad89346993527de4b11e
4
+ data.tar.gz: 8f88aeda85929d086bd2021704dafce5279b9fdb58e4a5654eafa29bcdc4ea30
5
5
  SHA512:
6
- metadata.gz: b369cf0d0dacb321a5c50780fc7f689abb25080d46268787c35f9c3bfb067c924bcc7a4ff52f528a4fc17d39b98a9d49e206d972b7dbaecfe2f843f817e684c1
7
- data.tar.gz: cc96e331bcafc1ebe13fe15b179ec3773bde1036c2602308a16d6d5e77b9b4052b2f977c4076710d29506c79422f23f28bfb735f0e6c2d2c31d58a31146abe32
6
+ metadata.gz: c2cb0273741a8ec3ad00816daf2ceafb913ff062c50ad373d72e7f8668f2570e538fb22d9fdb716efea44c04b9eb5493a91e92ff1cefeb919849ef44059308e8
7
+ data.tar.gz: 0ea01b28e31c1241ee54dbf901311de79dfec8df92e23503421790900f00a136f5be6befa0a2f77049d9dfc4d92fafbdbccb57d560256be5006ab7a3989d405d
data/README.md CHANGED
@@ -1,23 +1,11 @@
1
- # Decidim::System
1
+ # decidim-system
2
2
 
3
3
  This engine adds an administration dashboard so admin can manage a Decidim deploy
4
4
  and its organizations when working in a multi-tenant environment.
5
5
 
6
6
  ## Usage
7
7
 
8
- `decidim-system` is already included in the `decidim` gem, but you can also include it separately:
9
-
10
- Add this line to your application's Gemfile:
11
-
12
- ```ruby
13
- gem 'decidim-system'
14
- ```
15
-
16
- And then execute:
17
-
18
- ```bash
19
- bundle
20
- ```
8
+ This is on the default Decidim installation so you should not change anything to use this feature.
21
9
 
22
10
  ## Multi-tenancy in Decidim
23
11
 
@@ -45,7 +45,6 @@ module Decidim
45
45
 
46
46
  def save_organization
47
47
  organization.name = form.name
48
- organization.short_name = form.short_name
49
48
  organization.host = form.host
50
49
  organization.secondary_hosts = form.clean_secondary_hosts
51
50
  organization.force_users_to_authenticate_before_access_organization = form.force_users_to_authenticate_before_access_organization
@@ -24,7 +24,7 @@ module Decidim
24
24
 
25
25
  on(:invalid) do
26
26
  flash.now[:alert] = I18n.t("admins.create.error", scope: "decidim.system")
27
- render :new, status: :unprocessable_entity
27
+ render :new, status: :unprocessable_content
28
28
  end
29
29
  end
30
30
  end
@@ -46,7 +46,7 @@ module Decidim
46
46
 
47
47
  on(:invalid) do
48
48
  flash.now[:alert] = I18n.t("admins.update.error", scope: "decidim.system")
49
- render :edit, status: :unprocessable_entity
49
+ render :edit, status: :unprocessable_content
50
50
  end
51
51
  end
52
52
  end
@@ -29,7 +29,7 @@ module Decidim
29
29
  RefreshApiUserSecret.call(api_user, current_admin) do
30
30
  on(:ok) do |secret|
31
31
  flash[:notice] = I18n.t("api_user.refresh.success", scope: "decidim.system", user: api_user.api_key)
32
- session[:api_user] = { id: api_user.id, secret: secret }
32
+ session[:api_user] = { id: api_user.id, secret: }
33
33
  redirect_to action: :index
34
34
  end
35
35
 
@@ -41,17 +41,17 @@ module Decidim
41
41
  end
42
42
 
43
43
  def create
44
- @form = ::Decidim::System::ApiUserForm.from_params(params.merge!(name: params[:admin][:name], organization: organization))
44
+ @form = ::Decidim::System::ApiUserForm.from_params(params.merge!(name: params[:admin][:name], organization:))
45
45
  CreateApiUser.call(@form, current_admin) do
46
46
  on(:ok) do |api_user, secret|
47
47
  flash[:notice] = I18n.t("api_user.create.success", scope: "decidim.system", user: api_user.api_key)
48
- session[:api_user] = { id: api_user.id, secret: secret }
48
+ session[:api_user] = { id: api_user.id, secret: }
49
49
  redirect_to action: :index
50
50
  end
51
51
 
52
52
  on(:invalid) do
53
53
  flash[:error] = I18n.t("api_user.create.error", scope: "decidim.system")
54
- render :new, status: :unprocessable_entity
54
+ render :new, status: :unprocessable_content
55
55
  end
56
56
  end
57
57
  end
@@ -18,7 +18,7 @@ module Decidim
18
18
 
19
19
  def redirect_to_referer_or_path
20
20
  set_flash_message(:alert, "csrf_token", scope: "devise.failure")
21
- redirect_back(fallback_location: root_path)
21
+ redirect_back_or_to(root_path)
22
22
  end
23
23
 
24
24
  def current_organization; end
@@ -30,7 +30,7 @@ module Decidim
30
30
 
31
31
  on(:invalid) do
32
32
  flash.now[:alert] = I18n.t("oauth_applications.create.error", scope: "decidim.system")
33
- render :new, status: :unprocessable_entity
33
+ render :new, status: :unprocessable_content
34
34
  end
35
35
  end
36
36
  end
@@ -55,7 +55,7 @@ module Decidim
55
55
  on(:invalid) do |application|
56
56
  @oauth_application = application
57
57
  flash.now[:error] = I18n.t("oauth_applications.update.error", scope: "decidim.system")
58
- render action: :edit, status: :unprocessable_entity
58
+ render action: :edit, status: :unprocessable_content
59
59
  end
60
60
  end
61
61
  end
@@ -24,12 +24,12 @@ module Decidim
24
24
 
25
25
  on(:invalid_invitation) do
26
26
  flash.now[:alert] = t("organizations.create.error_invitation", scope: "decidim.system")
27
- render :new, status: :unprocessable_entity
27
+ render :new, status: :unprocessable_content
28
28
  end
29
29
 
30
30
  on(:invalid) do
31
31
  flash.now[:alert] = t("organizations.create.error", scope: "decidim.system")
32
- render :new, status: :unprocessable_entity
32
+ render :new, status: :unprocessable_content
33
33
  end
34
34
  end
35
35
  end
@@ -55,7 +55,7 @@ module Decidim
55
55
 
56
56
  on(:invalid) do
57
57
  flash.now[:alert] = I18n.t("organizations.update.error", scope: "decidim.system")
58
- render :edit, status: :unprocessable_entity
58
+ render :edit, status: :unprocessable_content
59
59
  end
60
60
  end
61
61
  end
@@ -82,7 +82,7 @@ module Decidim
82
82
  host: request.host,
83
83
  organization_admin_name: current_admin.email.split("@")[0],
84
84
  organization_admin_email: current_admin.email,
85
- available_locales: [Decidim.default_locale],
85
+ available_locales: Decidim.available_locales.map(&:to_s),
86
86
  default_locale: Decidim.default_locale,
87
87
  users_registration_mode: "enabled"
88
88
  }
@@ -12,9 +12,8 @@ module Decidim
12
12
  attribute :password_confirmation, String
13
13
 
14
14
  validates :email, presence: true
15
- validates :password, presence: true, unless: :admin_exists?
16
- validates :password, confirmation: true, if: :password_present?
17
- validates :password_confirmation, presence: true, if: :password_present?
15
+ validates :password, confirmation: true, presence: true, unless: :admin_exists?
16
+ validates :password_confirmation, presence: true, unless: :admin_exists?
18
17
 
19
18
  validates :password, password: { email: :email }
20
19
 
@@ -32,10 +31,6 @@ module Decidim
32
31
  def admin_exists?
33
32
  id.present?
34
33
  end
35
-
36
- def password_present?
37
- password.present? || password_confirmation.present?
38
- end
39
34
  end
40
35
  end
41
36
  end
@@ -141,7 +141,7 @@ module Decidim
141
141
  #
142
142
  # Valid formats:
143
143
  # - Fully Qualified Domain Names (FQDN): example.org, sub.example.org, my-site.example.org
144
- # - One word hostnames in development: localhost, my-machine
144
+ # - Localhost: localhost (common for development)
145
145
  # - IPv4 addresses: 127.0.0.1, 192.168.1.1
146
146
  # - IPv6 addresses: ::1, 2001:db8::1, [::1]
147
147
  #
@@ -163,6 +163,9 @@ module Decidim
163
163
  # Each label: alphanumeric start/end, alphanumerics and hyphens inside, max 63 chars.
164
164
  (?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}
165
165
  |
166
+ # Localhost: common development hostname.
167
+ localhost
168
+ |
166
169
  # IPv4: four octets (0-255 each).
167
170
  (?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)
168
171
  |
@@ -172,12 +175,10 @@ module Decidim
172
175
  \z
173
176
  }x
174
177
 
175
- SINGLE_LABEL_HOST_FORMAT_REGEX = /\A[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\z/
176
-
177
178
  def validate_host_format
178
179
  return if host.blank?
179
180
 
180
- return if valid_host_format?(host)
181
+ return if host.match?(HOST_FORMAT_REGEX)
181
182
 
182
183
  errors.add(:host, :invalid)
183
184
  end
@@ -186,19 +187,12 @@ module Decidim
186
187
  return if secondary_hosts.blank?
187
188
 
188
189
  clean_secondary_hosts.each do |secondary_host|
189
- next if valid_host_format?(secondary_host)
190
+ next if secondary_host.match?(HOST_FORMAT_REGEX)
190
191
 
191
192
  errors.add(:secondary_hosts, :invalid)
192
193
  break
193
194
  end
194
195
  end
195
-
196
- def valid_host_format?(value)
197
- return true if value.match?(HOST_FORMAT_REGEX)
198
- return false unless Rails.env.development?
199
-
200
- value.match?(SINGLE_LABEL_HOST_FORMAT_REGEX)
201
- end
202
196
  end
203
197
  end
204
198
  end
@@ -8,6 +8,7 @@ module Decidim
8
8
  #
9
9
  class RegisterOrganizationForm < BaseOrganizationForm
10
10
  include JsonbAttributes
11
+
11
12
  mimic :organization
12
13
 
13
14
  attribute :name, String
@@ -33,7 +33,7 @@
33
33
  <tbody>
34
34
  <% localized_locales.each do |locale| %>
35
35
  <tr>
36
- <td><%= locale.name %></td>
36
+ <td><%= locale.name %> (<%= locale.id %>)</td>
37
37
  <td><%= check_box_tag "organization[available_locales][#{locale.id}]", locale.id, @form.available_locales.include?(locale.id), class: "!m-0" %></td>
38
38
  <td><%= radio_button_tag "organization[default_locale]", locale.id, @form.default_locale == locale.id, class: "!m-0" %></td>
39
39
  </tr>
@@ -22,14 +22,15 @@
22
22
  </td>
23
23
  <td>
24
24
  <% if fresh_token?(api_user) %>
25
- <div data-controller="password-toggler"
26
- class="flex flex-row items-center gap-x-2"
27
- data-show-password="<%= t "api_user.show_secret", scope: "decidim.system.actions" %>"
28
- data-hide-password="<%= t "api_user.hide_secret", scope: "decidim.system.actions" %>"
29
- data-hidden-password="<%= t "api_user.hidden_secret", scope: "decidim.system.actions" %>"
30
- data-shown-password="<%= t "api_user.shown_secret", scope: "decidim.system.actions" %>">
31
- <input type="password" id="<%= "token_#{api_user.id}" %>" value="<%= @secret_user[:secret] %>" class="w-full" autocomplete="off">
32
- <div class="basis-1/4">
25
+ <div data-controller="password-toggler" class="flex flex-row items-center gap-x-2">
26
+ <div class="input-group__password">
27
+ <input type="password" id="<%= "token_#{api_user.id}" %>" value="<%= @secret_user[:secret] %>" class="w-full" autocomplete="off">
28
+ </div>
29
+ <div class="basis-1/4"
30
+ data-show-password="<%= t "api_user.show_secret", scope: "decidim.system.actions" %>"
31
+ data-hide-password="<%= t "api_user.hide_secret", scope: "decidim.system.actions" %>"
32
+ data-hidden-password="<%= t "api_user.hidden_secret", scope: "decidim.system.actions" %>"
33
+ data-shown-password="<%= t "api_user.shown_secret", scope: "decidim.system.actions" %>">
33
34
  <button type="button"
34
35
  class="button button__sm button__text-primary"
35
36
  data-controller="clipboard-copy"
@@ -11,7 +11,7 @@
11
11
  <%= render partial: "layouts/decidim/system/sidebar" %>
12
12
  </aside>
13
13
 
14
- <main class="grow" role="main">
14
+ <main class="grow">
15
15
  <div class="flex md:hidden items-center gap-2 bg-primary p-4 text-white font-bold text-lg">
16
16
  <button id="aside-trigger" class="flex-none md:hidden" data-controller="dropdown" data-target="aside-system" data-disabled-md="true">
17
17
  <%= icon "menu-line", class: "w-6 h-6 text-white fill-current" %>
@@ -1,4 +1,3 @@
1
- ---
2
1
  ar:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  bg:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  bs:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  ca-IT:
3
2
  activemodel:
4
3
  attributes:
@@ -1,9 +1,8 @@
1
- ---
2
1
  ca:
3
2
  activemodel:
4
3
  attributes:
5
4
  oauth_application:
6
- name: Nom de l'aplicació OAuth
5
+ name: Nom de l'aplicació
7
6
  organization_logo: Logo de l'organització (quadrat)
8
7
  organization_name: Organització
9
8
  organization_url: URL de l'organització
@@ -299,7 +298,7 @@ ca:
299
298
  organization_admin_email_hint: T'enviarem un correu electrònic a aquesta adreça perquè puguis confirmar-la i configurar la teva contrasenya.
300
299
  reference_prefix_hint: El prefix de la referència s'utilitza per identificar de forma única els recursos del conjunt de l'organització.
301
300
  secondary_hosts_hint: Introdueix cada un d'ells en una nova línia.
302
- short_name_hint: Nom curt que es farà servir per a l'Aplicació Web Progressiva (PWA). Ha de tenir un màxim de 12 caràcters.
301
+ short_name_hint: Nom curt que es farà servir per a l'Aplicació Web Progressiva. Ha de tenir un màxim de 12 caràcters.
303
302
  title: Nova organització
304
303
  omniauth_settings:
305
304
  decidim:
@@ -1,4 +1,3 @@
1
- ---
2
1
  cs:
3
2
  activemodel:
4
3
  attributes:
@@ -47,7 +46,6 @@ cs:
47
46
  system:
48
47
  actions:
49
48
  api_user:
50
- hidden_secret: Tajný klíč je skrytý
51
49
  hide_secret: Skrýt tajný klíč
52
50
  secret_can_not_be_shown: API secret může být zobrazeno nebo zkopírováno pouze po vytvoření
53
51
  show_secret: Zobrazit tajný klíč
@@ -188,7 +186,6 @@ cs:
188
186
  explanation: Aplikace, které nemohou používat registrované zákaznické tajemství, jako jsou aplikace běžící v prohlížeči nebo na mobilním zařízení.
189
187
  name: Veřejné
190
188
  application_type_help_html: 'Typ OAuth klienta definovaný <a href="%{client_type_link}" target="_blank">RFC 6749 Oddíl 2.1</a>. Veřejní klienti musí realizovat tok PKCE definovaný <a href="%{pkce_link}" target="_blank">RFC 7636</a>. '
191
- refresh_tokens_help_html: 'Aktualizovat tokeny je užitečné v případě, že token potřebuje delší životnost, než je přiděleno pro přístupový token. Všimněte si, že <strong>obnovovací tokeny by měly být používány pečlivě</strong>, protože mohou oslabit bezpečnost vašich uživatelů. '
192
189
  select_organization: Vybrat organizaci
193
190
  index:
194
191
  confirm_delete: Jste si jisti, že chcete odstranit tuto žádost?
@@ -1,4 +1,3 @@
1
- ---
2
1
  de:
3
2
  activemodel:
4
3
  attributes:
@@ -9,8 +8,6 @@ de:
9
8
  organization_url: URL der Organisation
10
9
  redirect_uri: Weiterleitungs-URI
11
10
  refresh_tokens: Token aktualisieren
12
- refresh_tokens_enabled: Refresh-Tokens aktiviert
13
- scopes: Verfügbare Scopes
14
11
  organization:
15
12
  address: SMTP Hostname
16
13
  from_email: E-Mail-Adresse
@@ -37,28 +34,14 @@ de:
37
34
  must_be_ssl: Der Umleitungs-URI muss ein SSL-URI sein
38
35
  organization:
39
36
  attributes:
40
- host:
41
- invalid: ist ungültig
42
37
  password:
43
38
  secret_key: Sie müssen die SECRET_KEY_BASE Umgebungsvariable definieren, um dieses Feld speichern zu können
44
- secondary_hosts:
45
- invalid: ist ungültig
46
39
  decidim:
47
40
  system:
48
41
  actions:
49
- api_user:
50
- hidden_secret: Secret ist ausgeblendet
51
- hide_secret: Secret ausblenden
52
- secret_can_not_be_shown: das API-Secret kann nur unmittelbar nach der Erstellung angezeigt oder kopiert werden
53
- show_secret: Secret anzeigen
54
- shown_secret: Secret wird angezeigt
55
42
  api_users:
56
43
  create: Erstellen
57
- new: Neues API-Konto
58
- remove: Konto entfernen
59
44
  confirm_destroy: Möchtest du das wirklich löschen?
60
- confirm_refresh_api_secret: Sind Sie sicher, dass Sie das Secret für dieses API-Konto erneuern möchten? Nach der Erneuerung ist das alte Secret ungültig und kann nicht mehr verwendet werden.
61
- confirm_remove_api_user: Sind Sie sicher, dass Sie dieses API-Konto entfernen möchten?
62
45
  copied: Kopiert
63
46
  copy_secret: Geheimnis kopieren
64
47
  copy_secret_clarification: Geheimnis in die Zwischenablage kopieren
@@ -90,22 +73,6 @@ de:
90
73
  api_user:
91
74
  create:
92
75
  error: API-Benutzer konnte nicht erstellt werden.
93
- success: API-Konto erfolgreich erstellt. Das Secret ist nur unmittelbar nach der Erstellung sichtbar. Bitte kopieren Sie es und bewahren Sie es sicher auf, bevor Sie diese Seite verlassen!
94
- destroy:
95
- success: API-Konto erfolgreich gelöscht.
96
- refresh:
97
- error: Etwas ist schiefgelaufen! Bitte versuchen Sie es später erneut.
98
- success: Secret erfolgreich erneuert. Das Secret ist nur unmittelbar nach der Erstellung sichtbar. Bitte kopieren Sie es und bewahren Sie es sicher auf, bevor Sie diese Seite verlassen!
99
- api_users:
100
- index:
101
- explanation_html: |
102
- <p>Mit API-Konten können Integrationsentwickler:innen administrative Maschinenkonten zum System hinzufügen. Diese Maschinenkonten können auf der Plattform als Admin agieren, um Aktualisierungen vorzunehmen, die normale Admins sonst über den Administrationsbereich durchführen würden. Ein typischer Anwendungsfall ist eine externe Verwaltungsplattform, bei der ein automatisiertes Skript administrative Aufgaben auf der Plattform ausführt, ohne dass sich eine reale Person am System authentifizieren muss. Ein Automatisierungssystem möchte beispielsweise Antworten auf Vorschläge senden; in diesem Fall benötigen wir ein Integrationskonto, das diese Aufgabe innerhalb der Plattform übernimmt.</p>
103
- <p>Der Hauptunterschied zwischen diesen Konten und normalen Admin-Konten besteht darin, dass diese Konten für die Nutzung durch Maschinen bestimmt sind und daher andere Anforderungen an das Passwort gelten. Diese Konten müssen ihr Passwort nicht regelmässig aktualisieren, und das Kontopasswort kann bei Bedarf kontrolliert geändert werden.</p>
104
- <p>Diese Zugangsdaten sind für die Nutzung durch Maschinen bestimmt. Anwendungen mit direktem Kontakt zu Teilnehmenden sollten stattdessen über <a href="%{oauth_link}">OAuth-Anwendungen</a> eingebunden werden.</p>
105
- manage: API-Konten verwalten
106
- new:
107
- select_organization: Wählen Sie Ihre Organisation aus
108
- title: Neues API-Konto erstellen
109
76
  dashboard:
110
77
  show:
111
78
  admins: Admins
@@ -134,7 +101,6 @@ de:
134
101
  sign_up: Konto erstellen
135
102
  menu:
136
103
  admins: Admins
137
- api_credentials: API-Zugangsdaten
138
104
  dashboard: Instrumententafel
139
105
  oauth_applications: OAuth-Anwendungen
140
106
  organizations: Organisationen
@@ -145,15 +111,6 @@ de:
145
111
  email: Email
146
112
  validations:
147
113
  email_uniqueness: ein anderer Administrator mit der gleichen E-Mail existiert bereits
148
- api_user:
149
- fields:
150
- created_at: Erstellt am
151
- key: Schlüssel
152
- name: Name
153
- organization: Organisation
154
- secret: Secret
155
- validations:
156
- name_uniqueness: Es existiert bereits ein API-Konto mit diesem Namen.
157
114
  oauth_application:
158
115
  fields:
159
116
  created_at: Erstellt am
@@ -180,26 +137,6 @@ de:
180
137
  save: Speichern
181
138
  title: Anwendung bearbeiten
182
139
  form:
183
- application_type:
184
- confidential:
185
- explanation: Anwendungen, die sich sicher gegenüber dem Autorisierungsserver authentifizieren können, zum Beispiel indem sie ihr registriertes Client-Secret sicher aufbewahren können. Typischerweise eine Anwendung, die auf einem Server läuft, auf dem das Client-Secret gespeichert ist.
186
- name: Vertraulich
187
- public:
188
- explanation: Anwendungen, die kein registriertes Client-Secret verwenden können, etwa Anwendungen, die in einem Browser oder auf einem Mobilgerät laufen.
189
- name: Öffentlich
190
- application_type_help_html: 'Der OAuth-Client-Typ gemäss <a href="%{client_type_link}" target="_blank">RFC 6749, Abschnitt 2.1</a>. Öffentliche Clients müssen den PKCE-Ablauf gemäss <a href="%{pkce_link}" target="_blank">RFC 7636</a> implementieren. '
191
- refresh_tokens_help_html: 'Refresh-Tokens sind nützlich, wenn ein Token eine längere Lebensdauer benötigt, als für das Access-Token vorgesehen ist. Beachten Sie, dass <strong>Refresh-Tokens mit Vorsicht verwendet werden sollten</strong>, da sie die Sicherheit Ihrer Nutzenden beeinträchtigen können. '
192
- scopes_explanation:
193
- "api:read": Ermöglicht es, über die GraphQL-API Abfragen (Query-Operationen) durchzuführen.
194
- "api:write": Ermöglicht es, über die GraphQL-API Änderungsoperationen (Mutation-Operationen) durchzuführen.
195
- profile: Gewährt Zugriff auf die eigenen Profildetails. Dieser Scope genügt, wenn die OAuth-Anwendung nur als Identitätsanbieter oder Authentifizierungsdienst genutzt wird.
196
- user: Ermöglicht es, bei Aufrufen der GraphQL-API mit dem angegebenen Token als die angemeldete Person zu agieren. Dies ist für alle api:write-Operationen sowie für api:read-Operationen erforderlich, die Informationen über die aktuell angemeldete Person benötigen.
197
- scopes_help_html: |
198
- Die ausgewählten Scopes stehen den verbundenen Anwendungen zur Verfügung, um sie während des Autorisierungsprozesses anzufordern. Beim Anmelden über OAuth werden der jeweiligen Person Details zur Autorisierungsanfrage angezeigt.
199
- <br>
200
- Unterschiedliche Scopes bieten unterschiedliche Funktionen für die angemeldete Person über die gewährten Access-Tokens.
201
- <br>
202
- <strong>Hinweis:</strong> Wenn Sie Ihre Nutzenden nur gegenüber Ihren externen Anwendungen authentifizieren müssen, benötigen Sie lediglich den Scope <strong>profile</strong>. Anwendungen, die mit der Decidim-API interagieren, benötigen zusätzliche Scopes.
203
140
  select_organization: Organisation wählen
204
141
  index:
205
142
  confirm_delete: Möchten Sie diese Anwendung wirklich löschen?
@@ -262,7 +199,6 @@ de:
262
199
  confirm_resend_invitation: Sind Sie sicher, das Sie die Einladung erneut senden möchten?
263
200
  resend_invitation: Einladung erneut senden
264
201
  secondary_hosts_hint: Geben Sie jede von ihnen in einer neuen Zeile ein
265
- short_name_hint: Kurzname für die Progressive Web App. Er darf maximal 12 Zeichen umfassen.
266
202
  title: Organisation bearbeiten
267
203
  file_upload_settings:
268
204
  content_types:
@@ -282,7 +218,6 @@ de:
282
218
  intro: |
283
219
  Bitte seien Sie besonders vorsichtig, wenn Sie überlegen, diese Einstellungen zu ändern. Je weniger Sie erlauben, desto besser.
284
220
  Wenn bestimmte Dateierweiterungen oder MIME-Typen zugelassen werden, können Benutzer Sicherheitsrisiken ausgesetzt werden und es kann auch die Zugänglichkeit der Website beeinträchtigen.
285
- header_snippets_help_html: Verwenden Sie dieses Feld, um Inhalte im HTML-Head-Bereich zu ergänzen. Der häufigste Anwendungsfall ist die Einbindung von Drittanbieterdiensten, die zusätzliches JavaScript oder CSS benötigen. Sie können es auch verwenden, um zusätzliche Meta-Tags ins HTML einzufügen. Beachten Sie, dass dies nur auf öffentlichen Seiten dargestellt wird, nicht im Admin-Bereich. Wenn der Code mit externen APIs interagiert oder nicht den Sicherheitsrichtlinien der Anwendung entspricht, muss die Content Security Policy angepasst werden. Weitere Informationen finden Sie <a href="https://docs.decidim.org/en/develop/customize/content_security_policy">auf der Dokumentationsseite</a> .
286
221
  index:
287
222
  title: Organisationen
288
223
  new:
@@ -292,7 +227,6 @@ de:
292
227
  organization_admin_email_hint: Wir senden Ihnen eine E-Mail an diese Adresse, die Sie bestätigen müssen um Ihr Passwort einrichten zu können.
293
228
  reference_prefix_hint: Das Referenzpräfix wird zur eindeutigen Identifizierung von Ressourcen in allen Organisationen verwendet.
294
229
  secondary_hosts_hint: Geben Sie jede von ihnen in einer neuen Zeile ein.
295
- short_name_hint: Kurzname für die Progressive Web App. Er darf maximal 12 Zeichen umfassen.
296
230
  title: Neue Organisation
297
231
  omniauth_settings:
298
232
  decidim:
@@ -1,4 +1,3 @@
1
- ---
2
1
  el:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  eo:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  es-MX:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  es-PY:
3
2
  activemodel:
4
3
  attributes:
@@ -1,4 +1,3 @@
1
- ---
2
1
  es:
3
2
  activemodel:
4
3
  attributes: