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.
- checksums.yaml +4 -4
- data/app/commands/decidim/system/create_api_user.rb +63 -0
- data/app/commands/decidim/system/create_oauth_application.rb +3 -1
- data/app/commands/decidim/system/create_organization.rb +0 -1
- data/app/commands/decidim/system/refresh_api_user_secret.rb +37 -0
- data/app/commands/decidim/system/update_oauth_application.rb +4 -1
- data/app/commands/decidim/system/update_organization.rb +1 -0
- data/app/controllers/decidim/system/admins_controller.rb +2 -2
- data/app/controllers/decidim/system/api_users_controller.rb +76 -0
- data/app/controllers/decidim/system/application_controller.rb +1 -0
- data/app/controllers/decidim/system/oauth_applications_controller.rb +2 -2
- data/app/controllers/decidim/system/organizations_controller.rb +4 -4
- data/app/forms/decidim/system/api_user_form.rb +24 -0
- data/app/forms/decidim/system/base_organization_form.rb +2 -1
- data/app/forms/decidim/system/oauth_application_form.rb +29 -2
- data/app/helpers/decidim/system/api_users_helper.rb +17 -0
- data/app/packs/entrypoints/decidim_system_overrides.scss +1 -1
- data/app/packs/stylesheets/decidim/system/application.scss +16 -1
- data/app/views/decidim/system/api_users/index.html.erb +13 -0
- data/app/views/decidim/system/api_users/new.html.erb +15 -0
- data/app/views/decidim/system/oauth_applications/_form.html.erb +35 -0
- data/app/views/decidim/system/organizations/_advanced_settings.html.erb +1 -1
- data/app/views/decidim/system/organizations/_file_upload_settings.erb +5 -5
- data/app/views/decidim/system/organizations/_omniauth_provider.html.erb +1 -1
- data/app/views/decidim/system/organizations/edit.html.erb +4 -0
- data/app/views/decidim/system/shared/_api_users.html.erb +66 -0
- data/app/views/layouts/decidim/system/_header.html.erb +1 -1
- data/app/views/layouts/decidim/system/application.html.erb +2 -2
- data/config/assets.rb +2 -2
- data/config/locales/ca-IT.yml +69 -0
- data/config/locales/ca.yml +69 -0
- data/config/locales/cs.yml +34 -0
- data/config/locales/de.yml +10 -0
- data/config/locales/en.yml +73 -0
- data/config/locales/es-MX.yml +69 -0
- data/config/locales/es-PY.yml +69 -0
- data/config/locales/es.yml +69 -0
- data/config/locales/eu.yml +72 -3
- data/config/locales/fi-plain.yml +69 -0
- data/config/locales/fi.yml +69 -0
- data/config/locales/fr-CA.yml +1 -0
- data/config/locales/fr.yml +1 -0
- data/config/locales/ja.yml +68 -0
- data/config/locales/sv.yml +67 -0
- data/config/routes.rb +1 -0
- data/lib/decidim/system/engine.rb +1 -1
- data/lib/decidim/system/menu.rb +7 -1
- data/lib/decidim/system/version.rb +1 -1
- data/lib/decidim/system.rb +6 -0
- 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
|
-
|
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-
|
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::
|
6
|
-
Decidim::
|
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
|
)
|
data/config/locales/ca-IT.yml
CHANGED
@@ -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:
|
data/config/locales/ca.yml
CHANGED
@@ -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:
|
data/config/locales/cs.yml
CHANGED
@@ -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?
|
data/config/locales/de.yml
CHANGED
@@ -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
|
data/config/locales/en.yml
CHANGED
@@ -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:
|