decidim-system 0.30.1 → 0.31.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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/system/create_api_user.rb +63 -0
  3. data/app/commands/decidim/system/create_oauth_application.rb +3 -1
  4. data/app/commands/decidim/system/create_organization.rb +0 -1
  5. data/app/commands/decidim/system/refresh_api_user_secret.rb +37 -0
  6. data/app/commands/decidim/system/update_oauth_application.rb +4 -1
  7. data/app/commands/decidim/system/update_organization.rb +1 -0
  8. data/app/controllers/decidim/system/admins_controller.rb +2 -2
  9. data/app/controllers/decidim/system/api_users_controller.rb +76 -0
  10. data/app/controllers/decidim/system/application_controller.rb +1 -0
  11. data/app/controllers/decidim/system/oauth_applications_controller.rb +2 -2
  12. data/app/controllers/decidim/system/organizations_controller.rb +4 -4
  13. data/app/forms/decidim/system/api_user_form.rb +24 -0
  14. data/app/forms/decidim/system/base_organization_form.rb +2 -1
  15. data/app/forms/decidim/system/oauth_application_form.rb +29 -2
  16. data/app/helpers/decidim/system/api_users_helper.rb +17 -0
  17. data/app/packs/entrypoints/decidim_system_overrides.scss +1 -1
  18. data/app/packs/stylesheets/decidim/system/application.scss +16 -1
  19. data/app/views/decidim/system/api_users/index.html.erb +13 -0
  20. data/app/views/decidim/system/api_users/new.html.erb +15 -0
  21. data/app/views/decidim/system/oauth_applications/_form.html.erb +35 -0
  22. data/app/views/decidim/system/organizations/_advanced_settings.html.erb +1 -1
  23. data/app/views/decidim/system/organizations/_file_upload_settings.erb +5 -5
  24. data/app/views/decidim/system/organizations/_omniauth_provider.html.erb +1 -1
  25. data/app/views/decidim/system/organizations/edit.html.erb +4 -0
  26. data/app/views/decidim/system/shared/_api_users.html.erb +66 -0
  27. data/app/views/layouts/decidim/system/_header.html.erb +1 -1
  28. data/app/views/layouts/decidim/system/application.html.erb +2 -2
  29. data/config/assets.rb +2 -2
  30. data/config/locales/ca-IT.yml +69 -0
  31. data/config/locales/ca.yml +69 -0
  32. data/config/locales/cs.yml +34 -0
  33. data/config/locales/de.yml +10 -0
  34. data/config/locales/en.yml +73 -0
  35. data/config/locales/es-MX.yml +69 -0
  36. data/config/locales/es-PY.yml +69 -0
  37. data/config/locales/es.yml +69 -0
  38. data/config/locales/eu.yml +72 -3
  39. data/config/locales/fi-plain.yml +69 -0
  40. data/config/locales/fi.yml +69 -0
  41. data/config/locales/fr-CA.yml +1 -0
  42. data/config/locales/fr.yml +1 -0
  43. data/config/locales/ja.yml +68 -0
  44. data/config/locales/sv.yml +67 -0
  45. data/config/routes.rb +1 -0
  46. data/lib/decidim/system/engine.rb +1 -1
  47. data/lib/decidim/system/menu.rb +7 -1
  48. data/lib/decidim/system/version.rb +1 -1
  49. data/lib/decidim/system.rb +6 -0
  50. metadata +14 -6
@@ -0,0 +1,66 @@
1
+ <table class="stack">
2
+ <thead>
3
+ <tr><th><%= t("models.api_user.fields.organization", scope: "decidim.system") %></th>
4
+ <th><%= t("models.api_user.fields.name", scope: "decidim.system") %></th>
5
+ <th><%= t("models.api_user.fields.key", scope: "decidim.system") %></th>
6
+ <th><%= t("models.api_user.fields.secret", scope: "decidim.system") %></th>
7
+ <th><%= t("models.api_user.fields.created_at", scope: "decidim.system") %></th>
8
+ <th><%= t("actions.title", scope: "decidim.system") %></th>
9
+ </tr>
10
+ </thead>
11
+ <tbody>
12
+ <% api_users&.each do |api_user| %>
13
+ <tr>
14
+ <td>
15
+ <%= api_user.organization.host %>
16
+ </td>
17
+ <td>
18
+ <%= api_user.name %>
19
+ </td>
20
+ <td>
21
+ <%= translated_attribute(api_user.api_key) %>
22
+ </td>
23
+ <td>
24
+ <% if fresh_token?(api_user) %>
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" %>">
34
+ <button type="button"
35
+ class="button button__sm button__text-primary"
36
+ data-controller="clipboard-copy"
37
+ data-clipboard-copy="<%= "#token_#{api_user.id}" %>"
38
+ data-clipboard-content="<%= @secret_user[:secret] %>"
39
+ data-clipboard-copy-label="<%= t("copied", scope: "decidim.system.actions") %>"
40
+ data-clipboard-copy-message="<%= t("copied", scope: "decidim.system.actions") %>"
41
+ title="<%= t("copy_secret_clarification", scope: "decidim.system.actions") %>">
42
+ <span><%= t("copy_secret", scope: "decidim.system.actions") %></span>
43
+ <%= icon "file-copy-line" %>
44
+ </button>
45
+ </div>
46
+ </div>
47
+ <% else %>
48
+ <div class="flex items-center gap-x-2">
49
+ <div class="basis-3/4">
50
+ <%= t("api_user.secret_can_not_be_shown", scope:"decidim.system.actions") %>
51
+ </div>
52
+ </div>
53
+ <% end %>
54
+ </td>
55
+ <td>
56
+ <%= l api_user.created_at, format: :short %>
57
+ </td>
58
+ <td>
59
+ <%= link_to t("actions.refresh_secret", scope: "decidim.system"), api_user_path(id: api_user.id), class: "button button__sm button__text-primary", method: :patch, data: { confirm: t("actions.confirm_refresh_api_secret", scope: "decidim.system") } %>
60
+ <br>
61
+ <%= link_to t("actions.api_users.remove", scope: "decidim.system"), api_user_path(id: api_user.id), class: "button button__sm button__text-primary", method: :delete, data: { confirm: t("actions.confirm_remove_api_user", scope: "decidim.system") } %>
62
+ </td>
63
+ </tr>
64
+ <% end %>
65
+ </tbody>
66
+ </table>
@@ -1,4 +1,4 @@
1
- <meta name="viewport" content="width=device-width, initial-scale=1">
1
+ <%= tag :meta, name: "viewport", content: "width=device-width, initial-scale=1.0" %>
2
2
  <%= csrf_meta_tags %>
3
3
  <%= append_stylesheet_pack_tag "decidim_system_overrides", media: "all" %>
4
4
  <%= stylesheet_pack_tag "decidim_core", "decidim_system", media: "all" %>
@@ -1,6 +1,6 @@
1
1
  <% add_decidim_page_title("Decidim - System") %>
2
2
  <!DOCTYPE html>
3
- <html>
3
+ <html dir="<%= rtl_direction %>">
4
4
  <head>
5
5
  <title><%= decidim_page_title %></title>
6
6
  <%= render partial: "layouts/decidim/system/header" %>
@@ -13,7 +13,7 @@
13
13
 
14
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
- <button id="aside-trigger" class="flex-none md:hidden" data-component="dropdown" data-target="aside-system" data-disabled-md="true">
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" %>
18
18
  </button>
19
19
 
data/config/assets.rb CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  base_path = File.expand_path("..", __dir__)
4
4
 
5
- Decidim::Webpacker.register_path("#{base_path}/app/packs")
6
- Decidim::Webpacker.register_entrypoints(
5
+ Decidim::Shakapacker.register_path("#{base_path}/app/packs")
6
+ Decidim::Shakapacker.register_entrypoints(
7
7
  decidim_system_overrides: "#{base_path}/app/packs/entrypoints/decidim_system_overrides.scss",
8
8
  decidim_system: "#{base_path}/app/packs/entrypoints/decidim_system.js"
9
9
  )
@@ -8,6 +8,9 @@ ca-IT:
8
8
  organization_name: Organització
9
9
  organization_url: URL de l'organització
10
10
  redirect_uri: URI de redirecció
11
+ refresh_tokens: Renovar autentificadors (tokens)
12
+ refresh_tokens_enabled: Renovar autentificadors (tokens) habilitats
13
+ scopes: Àmbits disponibles
11
14
  organization:
12
15
  address: Nom del servidor SMTP
13
16
  from_email: Adreça de correu electrònic
@@ -39,12 +42,28 @@ ca-IT:
39
42
  decidim:
40
43
  system:
41
44
  actions:
45
+ api_user:
46
+ hidden_secret: El secret està amagat
47
+ hide_secret: Amagar el secret
48
+ secret_can_not_be_shown: el secret d'API només es pot veure i copiar després de la creació
49
+ show_secret: Mostrar secret
50
+ shown_secret: Es mostra el secret
51
+ api_users:
52
+ create: Crear
53
+ new: Nova usuària de l'API
54
+ remove: Eliminar usuària
42
55
  confirm_destroy: Segur que ho vols eliminar això?
56
+ confirm_refresh_api_secret: Segur que vols renovar el secret per a aquesta usuària de l'API? Un cop renovat, el secret antic no serà vàlid i ja no es podrà fer servir.
57
+ confirm_remove_api_user: Segur que vols eliminar a aquesta usuària de l'API?
58
+ copied: S'ha copiat
59
+ copy_secret: Copiar el secret
60
+ copy_secret_clarification: Copiar el secret al porta-retalls
43
61
  destroy: Suprimeix
44
62
  edit: Edita
45
63
  new_admin: Afegir administradora
46
64
  new_oauth_application: Afegir aplicació OAUTH
47
65
  new_organization: Afegir organització
66
+ refresh_secret: Actualitzar el secret
48
67
  save: Desa
49
68
  title: Accions
50
69
  admins:
@@ -64,6 +83,25 @@ ca-IT:
64
83
  update:
65
84
  error: S'ha produït un error en actualitzar aquesta administradora.
66
85
  success: L'administradora s'ha actualitzat correctament.
86
+ api_user:
87
+ create:
88
+ error: S'ha produït un error en crear la usuària de l'API.
89
+ success: La usuària de l'API s'ha creat correctament. El secret per a la usuària només és visible després de la creació. Si us plau, copia'l i guarda'l de forma segura abans de sortir d'aquesta pàgina!
90
+ destroy:
91
+ success: La usuària de l'API s'ha esborrat amb èxit.
92
+ refresh:
93
+ error: Alguna cosa ha anat malament. Si us plau, intenta-ho de nou més tard.
94
+ success: S'ha renovat el secret correctament. El secret per a la usuària només és visible després de la creació. Si us plau, copia'l i guarda'l de forma segura abans de sortir d'aquesta pàgina!
95
+ api_users:
96
+ index:
97
+ explanation_html: |
98
+ <p>Les usuàries de l'API permeten a les desenvolupadores d'integració afegir comptes d'usuària de màquina administratives al sistema. Aquestes usuàries de màquina poden actuar com a administradores a la plataforma per realitzar actualitzacions que els administradors normals farien a través del panell d'administració. Un cas d'ús típic és una plataforma de gestió externa on un script automatitzat realitzaria tasques administratives amb la plataforma sense que una usuària real hagui d'autenticar-se al sistema. Per exemple, un sistema d'automatització podria voler enviar respostes a propostes i en aquest cas necessitem una usuària d'integració per fer aquesta tasca dins d'aquesta plataforma.</p>
99
+ <p>La principal diferència entre aquests comptes i els comptes d'administració normals és que aquests usuàries estan destinades a ser utilitzats per les màquines i per tant els seus requisits de contrasenya són diferents. Aquestes usuàries no necessiten actualitzar regularment la contrasenya i el canvi de contrasenya del compte es pot fer de manera gestionada quan sigui necessari.</p>
100
+ <p>Aquestes credencials estan destinades a ser utilitzades per màquines. Les aplicacions orientades als participants s'han d'integrar amb <a href="%{oauth_link}">Aplicacions OAuth</a>.</p>
101
+ manage: Gestionar usuàries s de l'API
102
+ new:
103
+ select_organization: Seleccionar la teva organització
104
+ title: Crear una nova usuària de l'API
67
105
  dashboard:
68
106
  show:
69
107
  admins: Administradores
@@ -92,6 +130,7 @@ ca-IT:
92
130
  sign_up: Crea un compte
93
131
  menu:
94
132
  admins: Administradores
133
+ api_credentials: Credencials de l'API
95
134
  dashboard: Tauler d'administració
96
135
  oauth_applications: Aplicacions OAuth
97
136
  organizations: Organitzacions
@@ -102,6 +141,15 @@ ca-IT:
102
141
  email: Correu electrònic
103
142
  validations:
104
143
  email_uniqueness: ja existeix una altra administradora amb aquest correu electrònic
144
+ api_user:
145
+ fields:
146
+ created_at: Creat el
147
+ key: Clau
148
+ name: Nom
149
+ organization: Organització
150
+ secret: Secret
151
+ validations:
152
+ name_uniqueness: Ja existeix una usuària de l'API amb aquest nom.
105
153
  oauth_application:
106
154
  fields:
107
155
  created_at: Creat el
@@ -128,6 +176,26 @@ ca-IT:
128
176
  save: Guardar
129
177
  title: Editar aplicació
130
178
  form:
179
+ application_type:
180
+ confidential:
181
+ explanation: Aplicacions que són capaces d'autenticar-se de forma segura amb el servidor d'autorització, per exemple sent capaços de mantenir fora de perill el seu secret de client registrat. Normalment és una aplicació que s'executa en un servidor on s'emmagatzema el secret del client.
182
+ name: Confidencial
183
+ public:
184
+ explanation: Aplicacions que no poden utilitzar secrets de clients registrats, com ara aplicacions que s'executen en un navegador o en un dispositiu mòbil.
185
+ name: Públic
186
+ application_type_help_html: 'El tipus de client OAuth definit per <a href="%{client_type_link}" target="_blank">RFC 6749 Secció 2.1</a>. Els clients públics han d''implementar el flux PKCE segons el que defineix <a href="%{pkce_link}" target="_blank">RFC 7636</a>.'
187
+ refresh_tokens_help_html: 'Els autentificadors (tokens) d''actualització són útils en cas que l''autentificador necessiti una vida útil més llarga que l''assignada a l''autentificador d''accés.'
188
+ scopes_explanation:
189
+ "api:read": Permet a la usuària fer operacions de consulta a través de l'API GraphQL.
190
+ "api:write": Permet a la usuària fer operacions de mutació a través de l'API GraphQL.
191
+ profile: Proporciona accés als detalls del perfil de la usuària. Aquest àmbit només és necessari si l'aplicació OAuth només s'utilitza com a proveïdor d'identitat o servei d'autenticació.
192
+ user: Capacitat per actuar com a usuària registrada amb l'autentificador (token) donat durant les trucades a l'API GraphQL. Això és necessari per a totes les operacions api:write o api:read que necessitin informació sobre l'usuari actual.
193
+ scopes_help_html: |
194
+ Els àmbits seleccionats estaran disponibles perquè les aplicacions connectades els sol·licitin durant el procés d'autorització. La usuària rebrà informació detallada sobre la sol·licitud d'autorització quan inicieu sessió mitjançant OAuth.
195
+ <br>
196
+ Els diferents àmbits proporcionen característiques diferents per a la usuària autenticada utilitzant els autentifcadors (tokens) d'accés concedits.
197
+ <br>
198
+ <strong>Nota:</strong> Si només necessites autenticar les usuàries de les teves aplicacions externes, només necessites l'àmbit <strong>perfil</strong>. Les aplicacions que interactuen amb l'API de Decidim també necessiten altres àmbits.
131
199
  select_organization: Seleccionar una organització
132
200
  index:
133
201
  confirm_delete: Segur que vols eliminar aquesta aplicació?
@@ -216,6 +284,7 @@ ca-IT:
216
284
  intro: |
217
285
  Si us plau, vés en compte en considerar canviar aquests ajustos. Com menys opcions permetis, millor.
218
286
  Permetre extensions d'arxius específiques o tipus MIME pot exposar a les usuàries del sistema a riscos de seguretat i també pot afectar l'accessibilitat del lloc web.
287
+ header_snippets_help_html: Fes servir aquest camp per afegir coses a la capçalera HTML. Lús més comú és integrar serveis de tercers que requereixen JavaScript o CSS addicionals. També, pots fer-lo servir per afegir meta-etiquetes extra a l'HTML. Tingues en compte que això només serà renderitzat a pàgines públiques, no a la secció d'administració. Si el codi interactua amb APIs externes o no compleix les pautes de seguretat de l'aplicació, cal canviar la Política de Seguretat del Contingut. Llegiu més sobre <a href="https://docs.decidim.org/develop/en/customize/content_security_policy">al lloc de documentació</a>.
219
288
  index:
220
289
  title: Organitzacions
221
290
  new:
@@ -8,6 +8,9 @@ ca:
8
8
  organization_name: Organització
9
9
  organization_url: URL de l'organització
10
10
  redirect_uri: URI de redirecció
11
+ refresh_tokens: Renovar autentificadors (tokens)
12
+ refresh_tokens_enabled: Renovar autentificadors (tokens) habilitats
13
+ scopes: Àmbits disponibles
11
14
  organization:
12
15
  address: Nom del servidor SMTP
13
16
  from_email: Adreça de correu electrònic
@@ -39,12 +42,28 @@ ca:
39
42
  decidim:
40
43
  system:
41
44
  actions:
45
+ api_user:
46
+ hidden_secret: El secret està amagat
47
+ hide_secret: Amagar el secret
48
+ secret_can_not_be_shown: el secret d'API només es pot veure i copiar després de la creació
49
+ show_secret: Mostrar secret
50
+ shown_secret: Es mostra el secret
51
+ api_users:
52
+ create: Crear
53
+ new: Nova usuària de l'API
54
+ remove: Eliminar usuària
42
55
  confirm_destroy: Segur que ho vols eliminar això?
56
+ confirm_refresh_api_secret: Segur que vols renovar el secret per a aquesta usuària de l'API? Un cop renovat, el secret antic no serà vàlid i ja no es podrà fer servir.
57
+ confirm_remove_api_user: Segur que vols eliminar a aquesta usuària de l'API?
58
+ copied: S'ha copiat
59
+ copy_secret: Copiar el secret
60
+ copy_secret_clarification: Copiar el secret al porta-retalls
43
61
  destroy: Suprimeix
44
62
  edit: Edita
45
63
  new_admin: Afegir administradora
46
64
  new_oauth_application: Afegir aplicació OAUTH
47
65
  new_organization: Afegir organització
66
+ refresh_secret: Actualitzar el secret
48
67
  save: Desa
49
68
  title: Accions
50
69
  admins:
@@ -64,6 +83,25 @@ ca:
64
83
  update:
65
84
  error: S'ha produït un error en actualitzar aquesta administradora.
66
85
  success: L'administradora s'ha actualitzat correctament.
86
+ api_user:
87
+ create:
88
+ error: S'ha produït un error en crear la usuària de l'API.
89
+ success: La usuària de l'API s'ha creat correctament. El secret per a la usuària només és visible després de la creació. Si us plau, copia'l i guarda'l de forma segura abans de sortir d'aquesta pàgina!
90
+ destroy:
91
+ success: La usuària de l'API s'ha esborrat amb èxit.
92
+ refresh:
93
+ error: Alguna cosa ha anat malament. Si us plau, intenta-ho de nou més tard.
94
+ success: S'ha renovat el secret correctament. El secret per a la usuària només és visible després de la creació. Si us plau, copia'l i guarda'l de forma segura abans de sortir d'aquesta pàgina!
95
+ api_users:
96
+ index:
97
+ explanation_html: |
98
+ <p>Les usuàries de l'API permeten a les desenvolupadores d'integració afegir comptes d'usuària de màquina administratives al sistema. Aquestes usuàries de màquina poden actuar com a administradores a la plataforma per realitzar actualitzacions que els administradors normals farien a través del panell d'administració. Un cas d'ús típic és una plataforma de gestió externa on un script automatitzat realitzaria tasques administratives amb la plataforma sense que una usuària real hagui d'autenticar-se al sistema. Per exemple, un sistema d'automatització podria voler enviar respostes a propostes i en aquest cas necessitem una usuària d'integració per fer aquesta tasca dins d'aquesta plataforma.</p>
99
+ <p>La principal diferència entre aquests comptes i els comptes d'administració normals és que aquests usuàries estan destinades a ser utilitzats per les màquines i per tant els seus requisits de contrasenya són diferents. Aquestes usuàries no necessiten actualitzar regularment la contrasenya i el canvi de contrasenya del compte es pot fer de manera gestionada quan sigui necessari.</p>
100
+ <p>Aquestes credencials estan destinades a ser utilitzades per màquines. Les aplicacions orientades als participants s'han d'integrar amb <a href="%{oauth_link}">Aplicacions OAuth</a>.</p>
101
+ manage: Gestionar usuàries s de l'API
102
+ new:
103
+ select_organization: Seleccionar la teva organització
104
+ title: Crear una nova usuària de l'API
67
105
  dashboard:
68
106
  show:
69
107
  admins: Administradores
@@ -92,6 +130,7 @@ ca:
92
130
  sign_up: Crea un compte
93
131
  menu:
94
132
  admins: Administradores
133
+ api_credentials: Credencials de l'API
95
134
  dashboard: Tauler d'administració
96
135
  oauth_applications: Aplicacions OAuth
97
136
  organizations: Organitzacions
@@ -102,6 +141,15 @@ ca:
102
141
  email: Correu electrònic
103
142
  validations:
104
143
  email_uniqueness: ja existeix una altra administradora amb aquest correu electrònic
144
+ api_user:
145
+ fields:
146
+ created_at: Creat el
147
+ key: Clau
148
+ name: Nom
149
+ organization: Organització
150
+ secret: Secret
151
+ validations:
152
+ name_uniqueness: Ja existeix una usuària de l'API amb aquest nom.
105
153
  oauth_application:
106
154
  fields:
107
155
  created_at: Creat el
@@ -128,6 +176,26 @@ ca:
128
176
  save: Guardar
129
177
  title: Editar aplicació
130
178
  form:
179
+ application_type:
180
+ confidential:
181
+ explanation: Aplicacions que són capaces d'autenticar-se de forma segura amb el servidor d'autorització, per exemple sent capaços de mantenir fora de perill el seu secret de client registrat. Normalment és una aplicació que s'executa en un servidor on s'emmagatzema el secret del client.
182
+ name: Confidencial
183
+ public:
184
+ explanation: Aplicacions que no poden utilitzar secrets de clients registrats, com ara aplicacions que s'executen en un navegador o en un dispositiu mòbil.
185
+ name: Públic
186
+ application_type_help_html: 'El tipus de client OAuth definit per <a href="%{client_type_link}" target="_blank">RFC 6749 Secció 2.1</a>. Els clients públics han d''implementar el flux PKCE segons el que defineix <a href="%{pkce_link}" target="_blank">RFC 7636</a>.'
187
+ refresh_tokens_help_html: 'Els autentificadors (tokens) d''actualització són útils en cas que l''autentificador necessiti una vida útil més llarga que l''assignada a l''autentificador d''accés.'
188
+ scopes_explanation:
189
+ "api:read": Permet a la usuària fer operacions de consulta a través de l'API GraphQL.
190
+ "api:write": Permet a la usuària fer operacions de mutació a través de l'API GraphQL.
191
+ profile: Proporciona accés als detalls del perfil de la usuària. Aquest àmbit només és necessari si l'aplicació OAuth només s'utilitza com a proveïdor d'identitat o servei d'autenticació.
192
+ user: Capacitat per actuar com a usuària registrada amb l'autentificador (token) donat durant les trucades a l'API GraphQL. Això és necessari per a totes les operacions api:write o api:read que necessitin informació sobre l'usuari actual.
193
+ scopes_help_html: |
194
+ Els àmbits seleccionats estaran disponibles perquè les aplicacions connectades els sol·licitin durant el procés d'autorització. La usuària rebrà informació detallada sobre la sol·licitud d'autorització quan inicieu sessió mitjançant OAuth.
195
+ <br>
196
+ Els diferents àmbits proporcionen característiques diferents per a la usuària autenticada utilitzant els autentifcadors (tokens) d'accés concedits.
197
+ <br>
198
+ <strong>Nota:</strong> Si només necessites autenticar les usuàries de les teves aplicacions externes, només necessites l'àmbit <strong>perfil</strong>. Les aplicacions que interactuen amb l'API de Decidim també necessiten altres àmbits.
131
199
  select_organization: Seleccionar una organització
132
200
  index:
133
201
  confirm_delete: Segur que vols eliminar aquesta aplicació?
@@ -216,6 +284,7 @@ ca:
216
284
  intro: |
217
285
  Si us plau, vés en compte en considerar canviar aquests ajustos. Com menys opcions permetis, millor.
218
286
  Permetre extensions d'arxius específiques o tipus MIME pot exposar a les usuàries del sistema a riscos de seguretat i també pot afectar l'accessibilitat del lloc web.
287
+ header_snippets_help_html: Fes servir aquest camp per afegir coses a la capçalera HTML. Lús més comú és integrar serveis de tercers que requereixen JavaScript o CSS addicionals. També, pots fer-lo servir per afegir meta-etiquetes extra a l'HTML. Tingues en compte que això només serà renderitzat a pàgines públiques, no a la secció d'administració. Si el codi interactua amb APIs externes o no compleix les pautes de seguretat de l'aplicació, cal canviar la Política de Seguretat del Contingut. Llegiu més sobre <a href="https://docs.decidim.org/develop/en/customize/content_security_policy">al lloc de documentació</a>.
219
288
  index:
220
289
  title: Organitzacions
221
290
  new:
@@ -8,6 +8,9 @@ cs:
8
8
  organization_name: Organizace
9
9
  organization_url: URL organizace
10
10
  redirect_uri: Přesměrovací URI
11
+ refresh_tokens: Obnovit tokeny
12
+ refresh_tokens_enabled: Obnovení tokenů povoleno
13
+ scopes: Dostupné rozsahy
11
14
  organization:
12
15
  address: SMTP hostname
13
16
  from_email: E-mailová adresa
@@ -39,12 +42,24 @@ cs:
39
42
  decidim:
40
43
  system:
41
44
  actions:
45
+ api_user:
46
+ hide_secret: Skrýt tajný klíč
47
+ show_secret: Zobrazit tajný klíč
48
+ shown_secret: Tajný klíč je zobrazen
49
+ api_users:
50
+ create: Vytvořit
51
+ new: Nový uživatel API
52
+ remove: Odebrat uživatele
42
53
  confirm_destroy: Opravdu to chcete smazat?
54
+ copied: Zkopírováno
55
+ copy_secret: Kopírovat tajný klíč
56
+ copy_secret_clarification: Zkopírovat tajný klíč do schránky
43
57
  destroy: Smazat
44
58
  edit: Upravit
45
59
  new_admin: Nový administrátor
46
60
  new_oauth_application: Nová aplikace OAuth
47
61
  new_organization: Nová organizace
62
+ refresh_secret: Aktualizovat tajný klíč
48
63
  save: Uložit
49
64
  title: Akce
50
65
  admins:
@@ -64,6 +79,15 @@ cs:
64
79
  update:
65
80
  error: Při aktualizaci tohoto administrátora došlo k chybě.
66
81
  success: Správce byl úspěšně aktualizován.
82
+ api_user:
83
+ create:
84
+ error: Vytvoření uživatele API se nezdařilo.
85
+ success: Uživatel API byl úspěšně vytvořen. Tajný klíč pro uživatele je viditelný pouze po vytvoření. Prosím, zkopírujte jej a uložte ho bezpečně před opuštěním této stránky!
86
+ destroy:
87
+ success: Uživatel API byl úspěšně smazán.
88
+ refresh:
89
+ error: Něco se pokazilo! Zkuste to prosím znovu později.
90
+ success: Tajný klíč byl úspěšně obnoven. Tajný klíč pro uživatele je viditelný pouze po vytvoření. Zkopírujte jej a uložte jej bezpečně před opuštěním této stránky!
67
91
  dashboard:
68
92
  show:
69
93
  admins: Administrátoři
@@ -102,6 +126,13 @@ cs:
102
126
  email: E-mail
103
127
  validations:
104
128
  email_uniqueness: jiný admin se stejnou e-mailovou adresou již existuje
129
+ api_user:
130
+ fields:
131
+ key: Klíč
132
+ name: Název
133
+ organization: Organizace
134
+ validations:
135
+ name_uniqueness: Uživatel API s tímto jménem již existuje.
105
136
  oauth_application:
106
137
  fields:
107
138
  created_at: Vytvořeno v
@@ -128,6 +159,9 @@ cs:
128
159
  save: Uložit
129
160
  title: Upravit žádost
130
161
  form:
162
+ application_type:
163
+ public:
164
+ name: Veřejné
131
165
  select_organization: Vybrat organizaci
132
166
  index:
133
167
  confirm_delete: Jste si jisti, že chcete odstranit tuto žádost?
@@ -8,6 +8,7 @@ de:
8
8
  organization_name: Organisation
9
9
  organization_url: URL der Organisation
10
10
  redirect_uri: Weiterleitungs-URI
11
+ refresh_tokens: Token aktualisieren
11
12
  organization:
12
13
  address: SMTP Hostname
13
14
  from_email: E-Mail-Adresse
@@ -39,12 +40,18 @@ de:
39
40
  decidim:
40
41
  system:
41
42
  actions:
43
+ api_users:
44
+ create: Erstellen
42
45
  confirm_destroy: Möchtest du das wirklich löschen?
46
+ copied: Kopiert
47
+ copy_secret: Geheimnis kopieren
48
+ copy_secret_clarification: Geheimnis in die Zwischenablage kopieren
43
49
  destroy: Löschen
44
50
  edit: Bearbeiten
45
51
  new_admin: Neuer Admin
46
52
  new_oauth_application: Neue OAUTH-Anwendung
47
53
  new_organization: Neue Organisation
54
+ refresh_secret: Geheimnis aktualisieren
48
55
  save: Speichern
49
56
  title: Aktionen
50
57
  admins:
@@ -64,6 +71,9 @@ de:
64
71
  update:
65
72
  error: Beim Aktualisieren dieses Administrators ist ein Fehler aufgetreten.
66
73
  success: Admin erfolgreich aktualisiert.
74
+ api_user:
75
+ create:
76
+ error: API-Benutzer konnte nicht erstellt werden.
67
77
  dashboard:
68
78
  show:
69
79
  admins: Admins
@@ -8,6 +8,9 @@ en:
8
8
  organization_name: Organization
9
9
  organization_url: Organization URL
10
10
  redirect_uri: Redirect URI
11
+ refresh_tokens: Refresh tokens
12
+ refresh_tokens_enabled: Refresh tokens enabled
13
+ scopes: Available scopes
11
14
  organization:
12
15
  address: SMTP hostname
13
16
  from_email: Email address
@@ -39,12 +42,28 @@ en:
39
42
  decidim:
40
43
  system:
41
44
  actions:
45
+ api_user:
46
+ hidden_secret: Secret is hidden
47
+ hide_secret: Hide Secret
48
+ secret_can_not_be_shown: the API secret can be only seen or copied after creation
49
+ show_secret: Show secret
50
+ shown_secret: Secret is shown
51
+ api_users:
52
+ create: Create
53
+ new: New API user
54
+ remove: Remove user
42
55
  confirm_destroy: Are you sure you want to delete this?
56
+ confirm_refresh_api_secret: Are you sure you want to refresh the secret for this API user? After the refresh, the old secret will be invalid and can no longer be used.
57
+ confirm_remove_api_user: Are you sure you want to remove this API user?
58
+ copied: Copied
59
+ copy_secret: Copy secret
60
+ copy_secret_clarification: Copy secret to the clipboard
43
61
  destroy: Delete
44
62
  edit: Edit
45
63
  new_admin: New admin
46
64
  new_oauth_application: New OAUTH application
47
65
  new_organization: New organization
66
+ refresh_secret: Refresh secret
48
67
  save: Save
49
68
  title: Actions
50
69
  admins:
@@ -64,6 +83,25 @@ en:
64
83
  update:
65
84
  error: There was a problem updating this admin.
66
85
  success: Admin successfully updated.
86
+ api_user:
87
+ create:
88
+ error: API user creation failed.
89
+ success: API user created successfully. The secret for the user is only visible after creation. Please copy it and store it safely before leaving this page!
90
+ destroy:
91
+ success: API user successfully deleted.
92
+ refresh:
93
+ error: Something went wrong! Please try again later.
94
+ success: Secret refreshed successfully. The secret for the user is only visible after creation. Please copy it and store it safely before leaving this page!
95
+ api_users:
96
+ index:
97
+ explanation_html: |
98
+ <p>API users allow integration developers to add administrative machine user accounts to the system. These machine users can act as administrators on the platform to perform updates that normal administrators would perform through the administration panel. A typical use case is an external management platform where an automated script would perform administrative tasks with the platform without a real user having to authenticate to the system. For example, an automation system might want to send answers to proposals in which case we need an integration user to perform this task within this platform.</p>
99
+ <p>The main difference between these accounts and normal administrator accounts is that these users are meant to be used by machines and therefore their password requirements are different. These users do not need to regularly update their password and changing the account password can happen in a managed way when needed.</p>
100
+ <p>These credentials are meant to be used by machines. Participant-facing applications should be integrated with <a href="%{oauth_link}">OAuth applications</a>.</p>
101
+ manage: Manage API users
102
+ new:
103
+ select_organization: Select your organization
104
+ title: Create new API user
67
105
  dashboard:
68
106
  show:
69
107
  admins: Admins
@@ -92,6 +130,7 @@ en:
92
130
  sign_up: Create an account
93
131
  menu:
94
132
  admins: Admins
133
+ api_credentials: API credentials
95
134
  dashboard: Dashboard
96
135
  oauth_applications: OAuth applications
97
136
  organizations: Organizations
@@ -102,6 +141,15 @@ en:
102
141
  email: Email
103
142
  validations:
104
143
  email_uniqueness: another admin with the same email already exists
144
+ api_user:
145
+ fields:
146
+ created_at: Created at
147
+ key: Key
148
+ name: Name
149
+ organization: Organization
150
+ secret: Secret
151
+ validations:
152
+ name_uniqueness: An API user with this name already exists.
105
153
  oauth_application:
106
154
  fields:
107
155
  created_at: Created at
@@ -128,6 +176,30 @@ en:
128
176
  save: Save
129
177
  title: Edit application
130
178
  form:
179
+ application_type:
180
+ confidential:
181
+ explanation: Applications that are able to securely authenticate with the authorization server, for example being able to keep their registered client secret safe. Typically an application running on a server where the client secret is stored.
182
+ name: Confidential
183
+ public:
184
+ explanation: Applications that are unable to use registered client secrets, such as applications running in a browser or on a mobile device.
185
+ name: Public
186
+ application_type_help_html: 'The OAuth client type as defined by <a href="%{client_type_link}" target="_blank">RFC 6749 Section 2.1</a>. Public clients need to implement the PKCE flow as defined by <a href="%{pkce_link}" target="_blank">RFC 7636</a>.
187
+
188
+ '
189
+ refresh_tokens_help_html: 'Refresh tokens are useful in case the token needs a longer lifetime than what is assigned for the access token. Note that <strong>refresh tokens should be used carefully</strong> because they can weaken the security of your users.
190
+
191
+ '
192
+ scopes_explanation:
193
+ api:read: Allows the user to perform query operations through the GraphQL API.
194
+ api:write: Allows the user to perform mutation operations through the GraphQL API.
195
+ profile: Provides access to the user's own profile details. Only this scope is needed in case the OAuth application is only used as an identity provider or an authentication service.
196
+ user: Ability to act as the signed in user with the given token during calls to the GraphQL API. This is required for all api:write operations or api:read operations that need information about the current user.
197
+ scopes_help_html: |
198
+ The selected scopes will be available for the connected applications to request during the authorization process. The user will be presented details about the authorization request when they sign in using OAuth.
199
+ <br>
200
+ Different scopes provide different features for the authenticated user using the granted access tokens.
201
+ <br>
202
+ <strong>Note:</strong> If you only need to authenticate the users to your external applications, you only need the <strong>profile</strong> scope. Applications interacting with the Decidim API require other scopes as well.
131
203
  select_organization: Select an organization
132
204
  index:
133
205
  confirm_delete: Are you sure you want to delete this application?
@@ -217,6 +289,7 @@ en:
217
289
  intro: |
218
290
  Please be extra cautious when considering to change these settings. The less you allow, the better.
219
291
  Allowing specific file extensions or MIME types can expose the system users to security risks and it can also affect the accessibility of the website.
292
+ header_snippets_help_html: Use this field to add things to the HTML head. The most common use is to integrate third-party services that require some extra JavaScript or CSS. Also, you can use it to add extra meta tags to the HTML. Note that this will only be rendered in public pages, not in the admin section. If the code interacts with external APIs or does not comply with the application security guidelines, it will be necessary to change the Content Security Policy. Read more about <a href="https://docs.decidim.org/develop/en/customize/content_security_policy">on the documentation site</a> .
220
293
  index:
221
294
  title: Organizations
222
295
  new: