decidim-decidim_awesome 0.11.2 → 0.11.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +54 -2
- data/app/cells/concerns/decidim/decidim_awesome/proposal_l_cell_override.rb +5 -3
- data/app/cells/decidim/decidim_awesome/content_blocks/map_cell.rb +0 -4
- data/app/cells/decidim/decidim_awesome/voting/proposal_metadata_cell.rb +18 -3
- data/app/commands/concerns/decidim/decidim_awesome/proposals/create_proposal_override.rb +2 -2
- data/app/commands/concerns/decidim/decidim_awesome/system/register_organization_override.rb +29 -0
- data/app/commands/concerns/decidim/decidim_awesome/system/update_organization_override.rb +35 -0
- data/app/commands/concerns/decidim/decidim_awesome/update_account_override.rb +30 -0
- data/app/commands/decidim/decidim_awesome/admin/create_scoped_style.rb +3 -2
- data/app/commands/decidim/decidim_awesome/admin/destroy_scoped_style.rb +6 -4
- data/app/controllers/concerns/decidim/decidim_awesome/check_login_authorizations.rb +60 -0
- data/app/controllers/concerns/decidim/decidim_awesome/needs_awesome_config.rb +0 -2
- data/app/controllers/concerns/decidim/decidim_awesome/proposals/memoize_extra_fields.rb +23 -0
- data/app/controllers/concerns/decidim/decidim_awesome/use_user_time_zone.rb +32 -0
- data/app/controllers/decidim/decidim_awesome/admin/admin_authorizations_controller.rb +122 -0
- data/app/controllers/decidim/decidim_awesome/admin/checks_controller.rb +1 -1
- data/app/controllers/decidim/decidim_awesome/admin/config_controller.rb +7 -1
- data/app/controllers/decidim/decidim_awesome/admin/constraints_controller.rb +5 -1
- data/app/controllers/decidim/decidim_awesome/admin/scoped_styles_controller.rb +12 -4
- data/app/controllers/decidim/decidim_awesome/required_authorizations_controller.rb +58 -0
- data/app/forms/concerns/decidim/decidim_awesome/account_form_override.rb +25 -0
- data/app/forms/concerns/decidim/decidim_awesome/system/organization_form_override.rb +34 -0
- data/app/forms/decidim/decidim_awesome/admin/config_form.rb +41 -8
- data/app/helpers/decidim/decidim_awesome/map_helper.rb +28 -26
- data/app/overrides/decidim/account/show/add_timezone_select.html.erb.deface +3 -0
- data/app/overrides/decidim/admin/officializations/index/add_modal.html.erb.deface +3 -0
- data/app/overrides/decidim/admin/officializations/index/add_td.html.erb.deface +5 -0
- data/app/overrides/decidim/admin/officializations/index/add_th.html.erb.deface +5 -0
- data/app/overrides/decidim/system/organizations/_advanced_settings/add_awesome_config.html.erb.deface +9 -0
- data/app/overrides/layouts/decidim/_head/add_awesome_tags.html.erb.deface +1 -1
- data/app/overrides/layouts/decidim/admin/_header/add_awesome_custom_styles.html.erb.deface +3 -0
- data/app/overrides/layouts/decidim/admin/_header/add_awesome_tags.html.erb.deface +1 -0
- data/app/packs/src/decidim/decidim_awesome/admin/proposal_sortings.js +0 -5
- data/app/packs/src/decidim/decidim_awesome/admin/verification_selects.js +21 -0
- data/app/packs/src/decidim/decidim_awesome/admin/verifications.js +43 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_admin.js +1 -0
- data/app/packs/src/decidim/decidim_awesome/awesome_admin_global.js +1 -0
- data/app/packs/stylesheets/decidim/decidim_awesome/admin/verifications.scss +99 -0
- data/app/packs/stylesheets/decidim/decidim_awesome/awesome_admin_global.scss +1 -0
- data/app/permissions/decidim/decidim_awesome/admin/permissions.rb +42 -11
- data/app/permissions/decidim/decidim_awesome/permissions.rb +7 -0
- data/app/presenters/decidim/decidim_awesome/admin_log/component_presenter_override.rb +3 -5
- data/app/presenters/decidim/decidim_awesome/admin_log/user_presenter_override.rb +46 -0
- data/app/views/decidim/decidim_awesome/account/_timezone_select.html.erb +3 -0
- data/app/views/decidim/decidim_awesome/admin/admin_authorizations/authorization.html.erb +20 -0
- data/app/views/decidim/decidim_awesome/admin/admin_authorizations/callout.html.erb +3 -0
- data/app/views/decidim/decidim_awesome/admin/admin_authorizations/conflict.html.erb +5 -0
- data/app/views/decidim/decidim_awesome/admin/admin_authorizations/edit.html.erb +41 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_scoped_admin_styles.html.erb +1 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_scoped_styles.html.erb +48 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_surveys.html.erb +8 -0
- data/app/views/decidim/decidim_awesome/admin/config/_form_verifications.html.erb +15 -0
- data/app/views/decidim/decidim_awesome/admin/constraints/no_permissions.html.erb +6 -0
- data/app/views/decidim/decidim_awesome/admin/officializations/_participants_td.html.erb +25 -0
- data/app/views/decidim/decidim_awesome/admin/officializations/_participants_th.html.erb +1 -0
- data/app/views/decidim/decidim_awesome/admin/officializations/_verification_modal.html.erb +9 -0
- data/app/views/decidim/decidim_awesome/required_authorizations/index.html.erb +66 -0
- data/app/views/decidim/decidim_awesome/system/organizations/_admin_allowed_authorizations.html.erb +5 -0
- data/app/views/layouts/decidim/decidim_awesome/_custom_styles.html.erb +1 -1
- data/app/views/layouts/decidim/decidim_awesome/admin/_custom_styles.html.erb +3 -0
- data/app/views/layouts/decidim/decidim_awesome/admin/admin_authorizations.html.erb +7 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/ca.yml +91 -5
- data/config/locales/cs.yml +86 -0
- data/config/locales/de.yml +52 -0
- data/config/locales/en.yml +115 -1
- data/config/locales/es.yml +89 -3
- data/config/locales/eu.yml +607 -26
- data/config/locales/fr.yml +37 -1
- data/config/locales/it.yml +0 -1
- data/config/locales/ja.yml +86 -0
- data/config/locales/nl.yml +0 -1
- data/config/locales/pt-BR.yml +0 -1
- data/lib/decidim/decidim_awesome/admin_engine.rb +2 -0
- data/lib/decidim/decidim_awesome/authorizator.rb +34 -0
- data/lib/decidim/decidim_awesome/awesome.rb +54 -1
- data/lib/decidim/decidim_awesome/awesome_helpers.rb +48 -19
- data/lib/decidim/decidim_awesome/checksums.yml +9 -0
- data/lib/decidim/decidim_awesome/engine.rb +20 -4
- data/lib/decidim/decidim_awesome/menu.rb +45 -9
- data/lib/decidim/decidim_awesome/request_memoizer.rb +16 -0
- data/lib/decidim/decidim_awesome/test/factories.rb +0 -4
- data/lib/decidim/decidim_awesome/test/initializer.rb +4 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/config_examples.rb +1 -1
- data/lib/decidim/decidim_awesome/test/shared_examples/custom_styles_examples.rb +156 -0
- data/lib/decidim/decidim_awesome/test/shared_examples/summary_examples.rb +26 -10
- data/lib/decidim/decidim_awesome/version.rb +1 -1
- data/package.json +6 -5
- metadata +42 -7
- data/app/views/decidim/decidim_awesome/admin/config/_form_styles.html.erb +0 -30
data/config/locales/fr.yml
CHANGED
@@ -19,8 +19,10 @@ fr:
|
|
19
19
|
intergram_use_floating_button: Si coché, la conversation fermée est toujours un bouton au lieu d'un texte
|
20
20
|
proposal_custom_fields: Champs personnalisés %{id}
|
21
21
|
proposal_private_custom_fields: Champs privés personnalisés %{id}
|
22
|
+
scoped_admin_styles: Style personnalisés %{id}
|
22
23
|
scoped_admins: Groupe d'administrateurs restreints %{id}
|
23
24
|
scoped_styles: Style personnalisés %{id}
|
25
|
+
user_timezone: Autoriser les utilisateurs à définir leur fuseau horaire dans leur profil
|
24
26
|
validate_body_max_caps_percent: Pourcentage maximum autorisé de lettres majuscules pour la description
|
25
27
|
validate_body_max_marks_together: Nombre maximum de caractères spéciaux autorisés dans le corps
|
26
28
|
validate_body_min_length: Nombre de caractères minimum pour le corps
|
@@ -46,6 +48,8 @@ fr:
|
|
46
48
|
target: Ouvrir dans
|
47
49
|
url: URL
|
48
50
|
visibility: Visibilité
|
51
|
+
user:
|
52
|
+
user_time_zone: Fuseau horaire personnel
|
49
53
|
decidim:
|
50
54
|
admin:
|
51
55
|
actions:
|
@@ -132,6 +136,9 @@ fr:
|
|
132
136
|
supported_last: A supporter en priorité
|
133
137
|
za: Z-A (alphabétique inverse)
|
134
138
|
decidim_awesome:
|
139
|
+
account:
|
140
|
+
timezone_select:
|
141
|
+
time_zone_helper: Utilisez votre fuseau horaire personnel pour afficher les dates dans votre heure locale lorsque vous êtes connecté.
|
135
142
|
admin:
|
136
143
|
actions: Actions
|
137
144
|
admin_accountability:
|
@@ -242,9 +249,12 @@ fr:
|
|
242
249
|
%{warning}
|
243
250
|
Ce texte peut être personnalisé avec une traduction personnalisée en utilisant la clé:
|
244
251
|
%{key}
|
252
|
+
scoped_admin_styles: Soyez conscient que cacher des éléments pourrait rendre l'interface administrateur inutilisable. Agissez avec prudence.
|
253
|
+
scoped_admin_styles_variables: 'Vous pouvez utiliser les variables CSS suivantes pour les couleurs personnalisées de l''organisation :'
|
245
254
|
scoped_admins: Promouvoir les utilisateurs réguliers en administrateurs qui ne peuvent administrer que certaines parties de la plateforme (utilisez l'éditeur de restrictions pour cela). Notez que les utilisateurs qui ont déjà les permissions d'administration habituelles seront ignorés.
|
246
255
|
scoped_styles: Créer un CSS personnalisé qui s'applique uniquement à certaines parties du site web public (front-end) (utilisez l'éditeur de restrictions pour cela)
|
247
256
|
scoped_styles_variables: 'Vous pouvez utiliser les variables CSS suivantes pour les couleurs personnalisées de l''organisation :'
|
257
|
+
user_timezone: Ceci va ajouter un champ de sélection dans le profil de l'utilisateur pour définir son fuseau horaire. Ceci sera utilisé pour afficher les dates et les heures dans l'heure locale de l'utilisateur.
|
248
258
|
validate_body_max_caps_percent: Zéro n'autorisera aucune lettre majuscule, 100 forcera à tout écrire en majuscule
|
249
259
|
validate_body_max_marks_together: 'Limiter le nombre de points d''interrogation et d''exclamation qui peuvent être écrits ensemble. Par exemple : si c''est 2, alors ''!!!'' ne sera pas autorisé dans le texte'
|
250
260
|
validate_body_min_length: Ce nombre peut être zéro, ce qui rendra ce champ non obligatoire
|
@@ -264,6 +274,11 @@ fr:
|
|
264
274
|
new: Ajouter une nouvelle section de champs personnalisés
|
265
275
|
remove: Supprimer cette boîte de champs personnalisés
|
266
276
|
sure_to_remove: Êtes-vous sûr de vouloir supprimer ce champ ?
|
277
|
+
form_scoped_admin_styles:
|
278
|
+
delete: Supprimer
|
279
|
+
new: Ajouter un nouveau bloc CSS "tableau de bord admin"
|
280
|
+
remove: Supprimer ce bloc CSS
|
281
|
+
sure_to_remove: Êtes-vous sûr de vouloir supprimer ce bloc CSS ?
|
267
282
|
form_scoped_admins:
|
268
283
|
delete: Supprimer
|
269
284
|
new: Ajouter un nouveau groupe "Administrateurs de secteur"
|
@@ -271,7 +286,7 @@ fr:
|
|
271
286
|
sure_to_remove: Êtes-vous sûr de vouloir détruire ce groupe « Administrateurs de secteur »?
|
272
287
|
form_scoped_styles:
|
273
288
|
delete: Supprimer
|
274
|
-
new: Ajouter
|
289
|
+
new: Ajouter un nouveau bloc CSS "interface publique"
|
275
290
|
remove: Supprimer cette boîte CSS
|
276
291
|
sure_to_remove: Etes-vous sûr de vouloir supprimer cette boîte CSS ?
|
277
292
|
none: "⛔ Jamais! - Désactive toute autre contrainte"
|
@@ -287,6 +302,8 @@ fr:
|
|
287
302
|
proposal_custom_fields: 'Champs personnalisés de propositions : champs publics'
|
288
303
|
proposal_private_custom_fields: 'Champs personnalisés de propositions : champs privés'
|
289
304
|
proposals: Hacks pour les propositions
|
305
|
+
scoped_admin_styles: 'Styles personnalisés : Tableau de bord admin'
|
306
|
+
scoped_styles: 'Styles personnalisés : Interface publique'
|
290
307
|
styles: Styles personnalisés
|
291
308
|
surveys: Enquêtes et formulaires
|
292
309
|
update:
|
@@ -393,6 +410,7 @@ fr:
|
|
393
410
|
proposals: Hacks pour les propositions
|
394
411
|
styles: Styles personnalisés
|
395
412
|
surveys: Enquêtes et formulaires
|
413
|
+
verifications: Vérifications
|
396
414
|
menu_hacks:
|
397
415
|
create:
|
398
416
|
error: Erreur lors de la création de l'élément de menu ! %{error}
|
@@ -431,6 +449,11 @@ fr:
|
|
431
449
|
error: Erreur lors de la mise à jour de l'élément de menu ! %{error}
|
432
450
|
success: Élément de menu mis à jour avec succès
|
433
451
|
url_exists: La même URL est déjà configurée, veuillez la modifier au lieu de la créer à nouveau.
|
452
|
+
officializations:
|
453
|
+
authorizations: Autorisations
|
454
|
+
verification_modal:
|
455
|
+
authorizations_for: Autorisations pour %{user}
|
456
|
+
close: Fermer
|
434
457
|
proposal_custom_fields:
|
435
458
|
menu:
|
436
459
|
title: Champs publiques
|
@@ -439,6 +462,12 @@ fr:
|
|
439
462
|
private_data_last_update: Ces données ont été mises à jour il y a %{time_ago}.
|
440
463
|
proposal_private_custom_fields: Champs privés
|
441
464
|
remove_private_data: "👉 Vous pouvez le supprimer"
|
465
|
+
scoped_admin_styles:
|
466
|
+
menu:
|
467
|
+
title: Tableau de bord admin
|
468
|
+
scoped_styles:
|
469
|
+
menu:
|
470
|
+
title: Interface publique
|
442
471
|
admin_log:
|
443
472
|
component:
|
444
473
|
destroy_private_data: "%{user_name} a détruit les objets %{count} de données privées pour %{resource_name} dans %{space_name}"
|
@@ -506,6 +535,13 @@ fr:
|
|
506
535
|
view_meeting: Voir la rencontre
|
507
536
|
view_proposal: Voir la proposition
|
508
537
|
proposal_private_custom_fields_disclosure: Cette information ne sera pas publiée
|
538
|
+
required_authorizations:
|
539
|
+
index:
|
540
|
+
cancel: Je vais le faire ultérieurement, %{link}.
|
541
|
+
granted_title: Vérifications accordées
|
542
|
+
missing_title: Pas encore vérifié
|
543
|
+
resume_title: Vérifications en attente
|
544
|
+
title: Vérifiez votre identité
|
509
545
|
validators:
|
510
546
|
too_much_caps: Utilise trop de majuscule (plus de %{percent} du texte)
|
511
547
|
voting:
|
data/config/locales/it.yml
CHANGED
@@ -247,7 +247,6 @@ it:
|
|
247
247
|
sure_to_remove: Sei sicuro di voler eliminare questo gruppo "Amministratori con ambito"?
|
248
248
|
form_scoped_styles:
|
249
249
|
delete: Elimina
|
250
|
-
new: Aggiungi un nuovo box CSS
|
251
250
|
remove: Rimuovi questo box CSS
|
252
251
|
sure_to_remove: Sei sicura di voler distruggere questo box CSS?
|
253
252
|
none: "⛔ Mai! - Disattiva ogni altro vincolo"
|
data/config/locales/ja.yml
CHANGED
@@ -7,6 +7,9 @@ ja:
|
|
7
7
|
allow_images_in_proposals: 提案エディターでの画像を許可する
|
8
8
|
allow_videos_in_editors: HTMLエディターで動画を許可する
|
9
9
|
auto_save_forms: ローカルストレージにフォームを自動保存する
|
10
|
+
force_authorization_after_login: ログイン/登録後に本人確認を行わせる
|
11
|
+
force_authorization_help_text: 認証ページのヘルプテキスト
|
12
|
+
force_authorization_with_any_method: いずれかの認証が行われている場合、アクセスできます (デフォルトでは、すべてが必要です)
|
10
13
|
intergram_auto_no_response: ユーザーが最初のメッセージを送信し、応答が受信されなかった後1分後に送信されたメッセージ
|
11
14
|
intergram_auto_response: ユーザーが最初のメッセージを送信した直後に送信されるメッセージ
|
12
15
|
intergram_chat_id: チャットID
|
@@ -19,8 +22,10 @@ ja:
|
|
19
22
|
intergram_use_floating_button: チェックした場合、閉じたチャットは常にテキストの代わりにボタンになります
|
20
23
|
proposal_custom_fields: 'カスタム項目 #%{id}'
|
21
24
|
proposal_private_custom_fields: 非公開カスタムフィールド %{id}
|
25
|
+
scoped_admin_styles: カスタムスタイル %{id}
|
22
26
|
scoped_admins: 'スコープ付き管理者グループ #%{id}'
|
23
27
|
scoped_styles: 'カスタムスタイル #%{id}'
|
28
|
+
user_timezone: ユーザーが自分のプロフィールでタイムゾーンを設定できるようにします
|
24
29
|
validate_body_max_caps_percent: 本文内での大文字の最大許容割合
|
25
30
|
validate_body_max_marks_together: 本文で許容される最多連続記号文字数
|
26
31
|
validate_body_min_length: 本文に必要な最小文字数
|
@@ -46,6 +51,10 @@ ja:
|
|
46
51
|
target: リンク先
|
47
52
|
url: URL
|
48
53
|
visibility: 表示・非表示
|
54
|
+
organization:
|
55
|
+
awesome_admins_available_authorizations: 管理者がこれらの認証を持つユーザーを手動で検証できるようにします
|
56
|
+
user:
|
57
|
+
user_time_zone: 個人のタイムゾーン
|
49
58
|
decidim:
|
50
59
|
admin:
|
51
60
|
actions:
|
@@ -132,6 +141,9 @@ ja:
|
|
132
141
|
supported_last: 最後にサポートした順
|
133
142
|
za: Z-A (アルファベット逆順)
|
134
143
|
decidim_awesome:
|
144
|
+
account:
|
145
|
+
timezone_select:
|
146
|
+
time_zone_helper: ログインしている地域の時間帯の日付を表示するために個人のタイムゾーンを使用します。
|
135
147
|
admin:
|
136
148
|
actions: アクション
|
137
149
|
admin_accountability:
|
@@ -170,6 +182,26 @@ ja:
|
|
170
182
|
collaborator: コラボレーター
|
171
183
|
moderator: モデレーター
|
172
184
|
valuator: 評価者
|
185
|
+
admin_authorizations:
|
186
|
+
authorization:
|
187
|
+
confirm_destroy: この認証を破棄してもよろしいですか?ユーザーのプラットフォームへのアクセスに影響する可能性があります。
|
188
|
+
destroy: 破棄
|
189
|
+
granted_at: '許可日時: %{date}'
|
190
|
+
metadata: メタデータを含みますか? %{metadata}
|
191
|
+
authorization_destroyed: 認証を破棄しました。
|
192
|
+
authorization_not_destroyed: 認証を破壊できませんでした
|
193
|
+
authorization_transferred: '警告:検証が競合していたため、検証は %{user} に転送されました'
|
194
|
+
conflict: 既存の認証との競合があります
|
195
|
+
conflict_help_html: "この認証を行う前に、ユーザー%{user} との競合を解決する必要があります。\n <br><br>\n検証の競合は、別のユーザーが認証しようとしているユーザーと同じデータを持っている場合に発生します。\nこの競合は、他のユーザーから競合している認証を削除するか、このユーザーに対して異なるデータを使用することで解決できます。\n"
|
196
|
+
edit:
|
197
|
+
authorize: '%{user} を %{name} で本人確認'
|
198
|
+
do_it_if_sure: ユーザーがこの権限を持っていると確認されている場合のみこれを行ってください
|
199
|
+
force_verification: 現在のデータで強制的に検証する
|
200
|
+
force_verification_help: 検証に失敗しましたが、ユーザーがこの認証を取得していることを確認している場合は強制できます。
|
201
|
+
force_verification_reason: '検証を強制する理由を教えてください:'
|
202
|
+
warning: '警告: この認証を強制することで、ユーザーの現在の認証ステータスを上書きします。'
|
203
|
+
user_authorized: "%{user} が %{name} で本人確認されました"
|
204
|
+
user_not_authorized: "%{user} は %{name} で本人確認されていません"
|
173
205
|
checks:
|
174
206
|
index:
|
175
207
|
admin_head_tags: 管理者向けアプリケーションヘッダーに含まれる Awesome tags
|
@@ -230,6 +262,8 @@ ja:
|
|
230
262
|
allow_videos_in_editors: すべてのWYSIWYGエディタに動画リンクアイコンを追加します
|
231
263
|
auto_save_forms: 調査などのフォームにユーザーが入力したデータを、LocalStorageを使って自動的に保存します。フォームを送信されていない場合、同じブラウザーで次回アクセスした時に復元されます。フォームを送信すると、データは削除されます。ユーザーがLocalStrorageのデータを削除した場合にも、データは復元されなくなります。
|
232
264
|
drag_and_drop_supported: 画像アップロード時にドラッグ&ドロップが利用できます。画像はサーバーにアップロードされ、外部リソースとして挿入されます(base64インラインエンコーディングは使用しません).
|
265
|
+
force_authorization_after_login: '有効にした場合、指定された認証が行われていなければ、ユーザーはログインまたは登録後に認証ページにリダイレクトされます。これはユーザーがログインする前に、特定の認証を使用してユーザーを強制的に本人確認させる場合(スパムを防ぐためなど) に便利です。'
|
266
|
+
force_authorization_help_text: 認証が必要な理由を説明するカスタムテキストを追加します。また、ユーザーがヘルプが必要な場合に備えて連絡方法を追加してください。
|
233
267
|
intergram_about: IntergramはTelegramメッセンジャーを使用してページの下部に埋め込まれたライブサポートチャットウィジェットを処理します。
|
234
268
|
intergram_config: '<a href="https://web.telegram.org/#/im?p=@IntergramBot">@Intergram bot</a> をグループに招待するか、直接チャットを開始します。 <a href="https://github.com/idoco/intergram#embed-intergram-in-your-website-with-these-2-simple-steps">+ info</a>'
|
235
269
|
original_editor_override: バージョン 0.26 以降、エディタに画像をアップロードすることが可能になりました(管理者専用)。 そのため、ここでの画像設定はパブリックエディタにのみ影響を与えます(管理者は常に利用可能です)。
|
@@ -242,15 +276,23 @@ ja:
|
|
242
276
|
%{warning}
|
243
277
|
このテキストは、下記のキーを使用してカスタム翻訳でカスタマイズできます:
|
244
278
|
%{key}
|
279
|
+
scoped_admin_styles: ここを隠すと管理者が使用できなくなる可能性があります。ご注意ください。
|
280
|
+
scoped_admin_styles_variables: '組織のカスタマイズ色には、以下の CSS 変数を使用できます。'
|
281
|
+
scoped_admin_styles_warning: "<strong>警告</strong>: ここでは、この管理者にのみ適用されるカスタム CSS を追加します。"
|
245
282
|
scoped_admins: 一般ユーザーを公開ウェブの特定の部分だけを管理できる管理者に昇格させます(制限エディターを使用してください)。 すでに通常の管理者権限を持つユーザーは無視されることに注意してください。
|
246
283
|
scoped_styles: 公開ウェブの特定の部分にのみ適用されるカスタムCSSを作成します (制限されたエディタを使用してください)
|
247
284
|
scoped_styles_variables: '組織の色のカスタマイズには、以下のCSS変数が使用できます。'
|
285
|
+
user_timezone: ユーザープロファイルにタイムゾーンを設定する選択ボックスを追加します. これは、ユーザーのローカル時間の日付と時刻を表示するために使われます.
|
248
286
|
validate_body_max_caps_percent: ゼロの場合大文字を許可しません。100の場合すべてを大文字で書くことを強制します。
|
249
287
|
validate_body_max_marks_together: '並べて入力できる「?」と「!」の数を制限します。 すなわち、それが2の場合、「!!!」はテキストに記入できません'
|
250
288
|
validate_body_min_length: この数字はゼロにできます。その場合、このフィールドを必須ではなくする効果があります。
|
251
289
|
validate_title_max_caps_percent: ゼロの場合大文字を許可しません。100の場合すべてを大文字で書くことを強制します。
|
252
290
|
validate_title_max_marks_together: '並べて入力できる「?」と「!」の数を制限します。 すなわち、それが2の場合、「!!!」はテキストに記入できません'
|
253
291
|
validate_title_min_length: タイトルは常に必須です。この数字はゼロにはできません
|
292
|
+
verifications_html: |
|
293
|
+
認証プロセスにいくつかの調整を加えることができます。<br>
|
294
|
+
<b>注意:</b> これらの設定を変更すると、一部のユーザーがプラットフォームにアクセスできなくなる可能性があります。慎重に使用してください!<br><br>
|
295
|
+
また、これらの設定は全ユーザーに適用されますが、管理者は常に管理者バックエンドにアクセス可能です。
|
254
296
|
validators:
|
255
297
|
body: '「body」フィールドのユーザー入力検証'
|
256
298
|
title: '「タイトル」フィールドのユーザー入力検証'
|
@@ -264,6 +306,11 @@ ja:
|
|
264
306
|
new: 新しい「非公開カスタムフィールド」を追加
|
265
307
|
remove: '「非公開カスタムフィールド」を削除'
|
266
308
|
sure_to_remove: この非公開フィールドボックスを破棄してもよろしいですか?
|
309
|
+
form_scoped_admin_styles:
|
310
|
+
delete: 削除
|
311
|
+
new: 新しい「管理画面」CSSボックスを追加
|
312
|
+
remove: このCSSボックスを削除
|
313
|
+
sure_to_remove: このCSSボックスを削除してもよろしいですか?
|
267
314
|
form_scoped_admins:
|
268
315
|
delete: 削除
|
269
316
|
new: 新しい「スコープ付き管理者」グループを追加
|
@@ -287,8 +334,11 @@ ja:
|
|
287
334
|
proposal_custom_fields: '提案カスタムフィールド: 公開フィールド'
|
288
335
|
proposal_private_custom_fields: '提案カスタムフィールド: 非公開フィールド'
|
289
336
|
proposals: 提案の設定
|
337
|
+
scoped_admin_styles: 'カスタムスタイル: 管理画面'
|
338
|
+
scoped_styles: 'カスタムスタイル: 公開フロントエンド'
|
290
339
|
styles: 独自スタイル
|
291
340
|
surveys: 調査&フォーム
|
341
|
+
verifications: 本人確認 / 認証の設定
|
292
342
|
update:
|
293
343
|
error: 設定更新エラー %{error}
|
294
344
|
success: 設定は正常に更新されました
|
@@ -394,6 +444,7 @@ ja:
|
|
394
444
|
proposals: 提案の設定
|
395
445
|
styles: 独自スタイル
|
396
446
|
surveys: 調査&フォーム
|
447
|
+
verifications: 本人認証
|
397
448
|
menu_hacks:
|
398
449
|
create:
|
399
450
|
error: メニュー項目作成エラー %{error}
|
@@ -432,6 +483,11 @@ ja:
|
|
432
483
|
error: メニュー項目更新エラー %{error}
|
433
484
|
success: メニュー項目は正常に更新されました
|
434
485
|
url_exists: 同じURLがすでに設定されています。もう一度作成し直す前に、内容を修正してください。
|
486
|
+
officializations:
|
487
|
+
authorizations: 認証
|
488
|
+
verification_modal:
|
489
|
+
authorizations_for: '%{user} の本人確認'
|
490
|
+
close: 閉じる
|
435
491
|
proposal_custom_fields:
|
436
492
|
menu:
|
437
493
|
title: 公開フィールド
|
@@ -440,9 +496,19 @@ ja:
|
|
440
496
|
private_data_last_update: このデータは最後に更新されたのは %{time_ago} 前です。
|
441
497
|
proposal_private_custom_fields: 非公開フィールド
|
442
498
|
remove_private_data: "👉 削除することを検討してもよいでしょう"
|
499
|
+
scoped_admin_styles:
|
500
|
+
menu:
|
501
|
+
title: 管理画面
|
502
|
+
scoped_styles:
|
503
|
+
menu:
|
504
|
+
title: 公開フロントエンド
|
443
505
|
admin_log:
|
444
506
|
component:
|
445
507
|
destroy_private_data: "%{user_name} は %{space_name} 内のプライベートデータの項目 %{resource_name} を%{count} 件破棄しました"
|
508
|
+
user:
|
509
|
+
admin_creates_authorization: "%{user_name} が %{resource_name} を %{handler_name} で検証しました"
|
510
|
+
admin_destroys_authorization: "%{user_name} が %{handler_name} の検証 %{resource_name} を破棄しました"
|
511
|
+
admin_forces_authorization: "%{user_name} は、 %{resource_name} について %{handler_name} による検証を強制しました。理由: %{reason}"
|
446
512
|
amendments:
|
447
513
|
modal:
|
448
514
|
amendment_exists: 修正は既に存在します
|
@@ -505,6 +571,26 @@ ja:
|
|
505
571
|
view_meeting: ミーティングを表示
|
506
572
|
view_proposal: 提案を表示
|
507
573
|
proposal_private_custom_fields_disclosure: この情報は公開されません
|
574
|
+
required_authorizations:
|
575
|
+
index:
|
576
|
+
cancel: あとで %{link} を行う
|
577
|
+
granted_title: 許可された本人確認
|
578
|
+
logout: ログアウトする
|
579
|
+
missing_title: 未検証
|
580
|
+
resume_title: 本人確認処理中
|
581
|
+
resume_with_method: '%{name} で本人確認を再開'
|
582
|
+
title: 本人確認を行う
|
583
|
+
verify_with_all_these_options: 'プラットフォームにアクセスできるようにするには、以下すべての方法で本人確認を行ってください:'
|
584
|
+
verify_with_any_of_these_options: 'プラットフォームにアクセスする前に、これらの選択肢のうちいずれかを用いて本人確認を行ってください'
|
585
|
+
verify_with_method: '%{name} で本人確認する'
|
586
|
+
session:
|
587
|
+
authorization_is_required: このプラットフォームに参加するには、有効な認証 (%{authorizations}) でアカウントを承認する必要があります。
|
588
|
+
system:
|
589
|
+
organizations:
|
590
|
+
admin_allowed_authoritzations_help_html: |
|
591
|
+
管理者はこれらの認証を使用してユーザーを手動で検証できます。
|
592
|
+
<br>セキュリティ上の問題につながる可能性があるため、この機能は注意して使用してください。
|
593
|
+
awesome_tweaks: Decidim Awesome Tweaks
|
508
594
|
validators:
|
509
595
|
too_much_caps: 大文字が多すぎます(テキストの %{percent}%以上)
|
510
596
|
voting:
|
data/config/locales/nl.yml
CHANGED
@@ -98,7 +98,6 @@ nl:
|
|
98
98
|
scoped_styles: Maak aangepaste CSS aan die alleen van toepassing is in bepaalde delen van het openbare web (gebruik hiervoor de restrictie-editor)
|
99
99
|
scoped_styles_variables: 'Je kunt de volgende CSS variabelen gebruiken voor de organisatie op maat gemaakte kleuren:'
|
100
100
|
form_scoped_styles:
|
101
|
-
new: Voeg een nieuwe CSS-box toe
|
102
101
|
remove: Verwijder dit CSS-vak
|
103
102
|
sure_to_remove: Weet je zeker dat je dit CSS-vak wilt verwijderen?
|
104
103
|
show:
|
data/config/locales/pt-BR.yml
CHANGED
@@ -151,7 +151,6 @@ pt-BR:
|
|
151
151
|
sure_to_remove: Deseja mesmo destruir esse grupo de "Administradores com Escopos"?
|
152
152
|
form_scoped_styles:
|
153
153
|
delete: Deletar
|
154
|
-
new: Adicionar uma nova caixa CSS
|
155
154
|
remove: Remover esta caixa CSS
|
156
155
|
sure_to_remove: Deseja mesmo destruir essa caixa de CSS?
|
157
156
|
none: "⛔ Nunca! - Desativar qualquer outra restrição"
|
@@ -32,6 +32,7 @@ module Decidim
|
|
32
32
|
delete :destroy_private_data, on: :member
|
33
33
|
get :checks, on: :collection, to: "checks#index"
|
34
34
|
end
|
35
|
+
resources :admin_authorizations, only: [:edit, :update, :destroy]
|
35
36
|
post :migrate_images, to: "checks#migrate_images"
|
36
37
|
root to: "config#show"
|
37
38
|
end
|
@@ -64,6 +65,7 @@ module Decidim
|
|
64
65
|
end
|
65
66
|
# submenus
|
66
67
|
Decidim::DecidimAwesome::Menu.register_custom_fields_submenu!
|
68
|
+
Decidim::DecidimAwesome::Menu.register_custom_styles_submenu!
|
67
69
|
Decidim::DecidimAwesome::Menu.register_menu_hacks_submenu!
|
68
70
|
Decidim::DecidimAwesome::Menu.register_maintenance_admin_menu!
|
69
71
|
Decidim::DecidimAwesome::Menu.register_awesome_admin_menu!
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module DecidimAwesome
|
5
|
+
class Authorizator
|
6
|
+
def initialize(user, admin_authorizations)
|
7
|
+
@user = user
|
8
|
+
@admin_authorizations = admin_authorizations
|
9
|
+
@admin_authorizations = [] if @admin_authorizations.blank? || !admin_authorizations.is_a?(Array)
|
10
|
+
@organization = user.organization
|
11
|
+
end
|
12
|
+
attr_reader :user, :organization, :admin_authorizations
|
13
|
+
|
14
|
+
def authorizations
|
15
|
+
return @authorizations if defined?(@authorizations)
|
16
|
+
|
17
|
+
@authorizations = organization.available_authorizations.filter_map do |name|
|
18
|
+
workflow = Decidim::Verifications.find_workflow_manifest(name)
|
19
|
+
next unless workflow
|
20
|
+
|
21
|
+
authorization = Decidim::Authorization.find_by(user:, name:)
|
22
|
+
{
|
23
|
+
name:,
|
24
|
+
fullname: workflow.fullname,
|
25
|
+
granted: authorization&.granted?,
|
26
|
+
pending: authorization.present? && !authorization.granted?,
|
27
|
+
managed: admin_authorizations.include?(name.to_s)
|
28
|
+
}
|
29
|
+
end
|
30
|
+
@authorizations = @authorizations.sort_by { |i| i[:managed] ? 0 : 1 }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -4,6 +4,8 @@ module Decidim
|
|
4
4
|
module DecidimAwesome
|
5
5
|
include ActiveSupport::Configurable
|
6
6
|
|
7
|
+
autoload :AwesomeHelpers, "decidim/decidim_awesome/awesome_helpers"
|
8
|
+
autoload :RequestMemoizer, "decidim/decidim_awesome/request_memoizer"
|
7
9
|
autoload :Config, "decidim/decidim_awesome/config"
|
8
10
|
autoload :SystemChecker, "decidim/decidim_awesome/system_checker"
|
9
11
|
autoload :ContextAnalyzers, "decidim/decidim_awesome/context_analyzers"
|
@@ -13,6 +15,7 @@ module Decidim
|
|
13
15
|
autoload :Lock, "decidim/decidim_awesome/lock"
|
14
16
|
autoload :TranslatedCustomFieldsType, "decidim/decidim_awesome/api/types/translated_custom_fields_type"
|
15
17
|
autoload :LocalizedCustomFieldsType, "decidim/decidim_awesome/api/types/localized_custom_fields_type"
|
18
|
+
autoload :Authorizator, "decidim/decidim_awesome/authorizator"
|
16
19
|
|
17
20
|
# Awesome comes with some components for participatory spaces
|
18
21
|
# Currently :awesome_map and :awesome_iframe, list them here
|
@@ -126,7 +129,7 @@ module Decidim
|
|
126
129
|
false
|
127
130
|
end
|
128
131
|
|
129
|
-
# allows admins to created specific CSS snippets affecting only some specific parts
|
132
|
+
# allows admins to created specific CSS snippets affecting only some public frontend specific parts
|
130
133
|
# Valid values differ a little from the previous convention:
|
131
134
|
# :disabled => false and non available, hidden from admins
|
132
135
|
# Hash => hash of different css text, each key will be used for the contraints
|
@@ -138,6 +141,18 @@ module Decidim
|
|
138
141
|
{}
|
139
142
|
end
|
140
143
|
|
144
|
+
# allows admins to created specific CSS snippets affecting only some admin specific parts
|
145
|
+
# Valid values differ a little from the previous convention:
|
146
|
+
# :disabled => false and non available, hidden from admins
|
147
|
+
# Hash => hash of different css text, each key will be used for the contraints
|
148
|
+
# Admins create this hash dynamically but some pre-defined css boxes can be created here as:
|
149
|
+
# {
|
150
|
+
# some_identifier: ".wrapper { background: red; }"
|
151
|
+
# }
|
152
|
+
config_accessor :scoped_admin_styles do
|
153
|
+
{}
|
154
|
+
end
|
155
|
+
|
141
156
|
# custom fields for proposals using JSON specification:
|
142
157
|
# https://github.com/jsonform/jsonform/wiki
|
143
158
|
# Valid values uses the same structure as :scoped_styles
|
@@ -156,6 +171,44 @@ module Decidim
|
|
156
171
|
{}
|
157
172
|
end
|
158
173
|
|
174
|
+
# whether to add a select to user's profile to allow them to select their preferred time zone
|
175
|
+
# if set to false, the select won't be shown but it can still be configured by the admins
|
176
|
+
# if set to :disabled the feature will be completly removed
|
177
|
+
config_accessor :user_timezone do
|
178
|
+
false
|
179
|
+
end
|
180
|
+
|
181
|
+
# Forces the user to authorize using some registered verification flow in order to access the platform
|
182
|
+
# if set to an empty array, the user will be able to access the platform without any verification but admins can still enforce it
|
183
|
+
# if set to :disabled the feature will be completly removed
|
184
|
+
# You can initialize some default verification workflow manifests
|
185
|
+
config_accessor :force_authorization_after_login do
|
186
|
+
[]
|
187
|
+
end
|
188
|
+
|
189
|
+
# By default all methods specified in force_authorization_after_login must be granted in order to access the platform
|
190
|
+
# if set to true, the user will be able to access the platform if any of the methods is granted
|
191
|
+
config_accessor :force_authorization_with_any_method do
|
192
|
+
false
|
193
|
+
end
|
194
|
+
|
195
|
+
# When force_authorization_after_login is enabled, this text will be shown to the user as a help text (ie: add a contact information)
|
196
|
+
config_accessor :force_authorization_help_text do
|
197
|
+
{}
|
198
|
+
end
|
199
|
+
|
200
|
+
# Allows admins to manually authorize users with the specified methods
|
201
|
+
# if set to an empty array, the admins will not be able to authorize users but the system admin can still configure it
|
202
|
+
# if set to :disabled the feature will be completly removed
|
203
|
+
config_accessor :admins_available_authorizations do
|
204
|
+
[]
|
205
|
+
end
|
206
|
+
|
207
|
+
# This controllers will be skipped from the authorization check
|
208
|
+
config_accessor :force_authorization_allowed_controller_names do
|
209
|
+
%w(account pages)
|
210
|
+
end
|
211
|
+
|
159
212
|
# How old must be the private data to be considered expired and therefore presented to the admins for deletion
|
160
213
|
config_accessor :private_data_expiration_time do
|
161
214
|
3.months
|
@@ -6,25 +6,27 @@ module Decidim
|
|
6
6
|
# add a global helper with awesome configuration
|
7
7
|
module DecidimAwesome
|
8
8
|
module AwesomeHelpers
|
9
|
+
include RequestMemoizer
|
10
|
+
|
9
11
|
# Returns the normalized config for an Organization and the current url
|
10
12
|
def awesome_config_instance
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
unless @awesome_config_instance.is_a? Config
|
16
|
-
@awesome_config_instance = Config.new request.env["decidim.current_organization"]
|
17
|
-
@awesome_config_instance.context_from_request request
|
13
|
+
memoize("current_config") do
|
14
|
+
config = Config.new(request.env["decidim.current_organization"])
|
15
|
+
config.context_from_request(request)
|
16
|
+
config
|
18
17
|
end
|
19
|
-
@awesome_config_instance
|
20
18
|
end
|
21
19
|
|
22
20
|
def awesome_config
|
23
|
-
|
21
|
+
memoize("awesome_config") do
|
22
|
+
awesome_config_instance.config
|
23
|
+
end
|
24
24
|
end
|
25
25
|
|
26
26
|
def javascript_config_vars
|
27
|
-
|
27
|
+
memoize("javascript_config_vars") do
|
28
|
+
awesome_config.slice(:allow_images_in_proposals, :allow_images_in_editors, :allow_videos_in_editors, :auto_save_forms).to_json.html_safe
|
29
|
+
end
|
28
30
|
end
|
29
31
|
|
30
32
|
def show_public_intergram?
|
@@ -35,11 +37,15 @@ module Decidim
|
|
35
37
|
end
|
36
38
|
|
37
39
|
def unfiltered_awesome_config
|
38
|
-
|
40
|
+
memoize("unfiltered_awesome_config") do
|
41
|
+
awesome_config_instance.unfiltered_config
|
42
|
+
end
|
39
43
|
end
|
40
44
|
|
41
45
|
def organization_awesome_config
|
42
|
-
|
46
|
+
memoize("organization_awesome_config") do
|
47
|
+
awesome_config_instance.organization_config
|
48
|
+
end
|
43
49
|
end
|
44
50
|
|
45
51
|
def awesome_version
|
@@ -47,29 +53,52 @@ module Decidim
|
|
47
53
|
end
|
48
54
|
|
49
55
|
# Collects all CSS that is applied in the current URL context
|
50
|
-
def
|
51
|
-
|
56
|
+
def awesome_scoped_styles
|
57
|
+
memoize("awesome_scoped_styles") do
|
58
|
+
awesome_config_instance.collect_sub_configs_values("scoped_style")
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
# Collects all CSS that is applied in the current URL context
|
63
|
+
def awesome_scoped_admin_styles
|
64
|
+
memoize("awesome_scoped_admin_styles") do
|
65
|
+
awesome_config_instance.collect_sub_configs_values("scoped_admin_style")
|
66
|
+
end
|
52
67
|
end
|
53
68
|
|
54
69
|
# Collects all proposal custom fields that is applied in the current URL context
|
55
70
|
def awesome_scoped_admins
|
56
|
-
|
71
|
+
memoize("awesome_scoped_admins") do
|
72
|
+
awesome_config_instance.collect_sub_configs_values("scoped_admin")
|
73
|
+
end
|
57
74
|
end
|
58
75
|
|
59
76
|
# Collects all proposal custom fields that is applied in the current URL context
|
60
77
|
def awesome_proposal_custom_fields
|
61
|
-
|
78
|
+
memoize("awesome_proposal_custom_fields") do
|
79
|
+
awesome_config_instance.collect_sub_configs_values("proposal_custom_field")
|
80
|
+
end
|
62
81
|
end
|
63
82
|
|
64
83
|
def awesome_proposal_private_custom_fields
|
65
|
-
|
84
|
+
memoize("awesome_proposal_private_custom_fields") do
|
85
|
+
awesome_config_instance.collect_sub_configs_values("proposal_private_custom_field")
|
86
|
+
end
|
66
87
|
end
|
67
88
|
|
68
89
|
# this will check if the current component has been configured to use a custom voting manifest
|
69
90
|
def awesome_voting_manifest_for(component)
|
70
|
-
|
91
|
+
memoize("awesome_voting_manifest_for_#{component.id}") do
|
92
|
+
DecidimAwesome.voting_registry.find(component.settings.try(:awesome_voting_manifest))
|
93
|
+
end
|
94
|
+
end
|
71
95
|
|
72
|
-
|
96
|
+
# Retrives all the "admins_available_authorizations" for the user along with other possible authorizations
|
97
|
+
# returns an instance of Decidim::DecidimAwesome::Authorizator
|
98
|
+
def awesome_authorizations_for(user)
|
99
|
+
memoize("awesome_authorizations_for_#{user.id}") do
|
100
|
+
Authorizator.new(user, awesome_config[:admins_available_authorizations])
|
101
|
+
end
|
73
102
|
end
|
74
103
|
|
75
104
|
def version_prefix
|
@@ -13,16 +13,24 @@ decidim-core:
|
|
13
13
|
/app/views/layouts/decidim/_head.html.erb:
|
14
14
|
decidim-0.28: e51e400a98821f4ca0fff26ebd4d0741
|
15
15
|
decidim-0.28.1: 8ac1af4e223d9a7a98136760b6194a75
|
16
|
+
decidim-0.28.4: 59abccd8b1c5315d5c0b772be0c26d45
|
16
17
|
/app/views/layouts/decidim/_decidim_javascript.html.erb:
|
17
18
|
decidim-0.28: dc60ed8abf7649611f18804b67b1408d
|
18
19
|
/app/presenters/decidim/menu_presenter.rb:
|
19
20
|
decidim-0.28: 220c8865a43bd8b7b12a7f926f7f4324
|
20
21
|
/app/presenters/decidim/menu_item_presenter.rb:
|
21
22
|
decidim-0.28: 4e4cd366a8a313079ac5fab466bd3679
|
23
|
+
decidim-0.28.4: f04f0f5112499a86079119d5f9ae8487
|
22
24
|
/app/helpers/decidim/amendments_helper.rb:
|
23
25
|
decidim-0.28: df28f9321d1bc07757746ed608274e3d
|
24
26
|
/app/presenters/decidim/admin_log/component_presenter.rb:
|
25
27
|
decidim-0.28: 77e80d527727acdf117a0c4517a69a7c
|
28
|
+
/app/forms/decidim/account_form.rb:
|
29
|
+
decidim-0.28: 11a022ae6ae18ad89da168bec4207935
|
30
|
+
/app/commands/decidim/update_account.rb:
|
31
|
+
decidim-0.28: 363872116fb99372c046b7394d618333
|
32
|
+
/app/views/decidim/account/show.html.erb:
|
33
|
+
decidim-0.28: a0647f1740d696018f73ec8db8c7587a
|
26
34
|
decidim-proposals:
|
27
35
|
/lib/decidim/proposals/proposal_serializer.rb:
|
28
36
|
decidim-0.28: bbd33bdc60defb734b3fb814666bb622
|
@@ -56,6 +64,7 @@ decidim-proposals:
|
|
56
64
|
decidim-0.28: ab3f937f15c6ed945e776fef34b18abf
|
57
65
|
/app/commands/decidim/proposals/admin/create_proposal.rb:
|
58
66
|
decidim-0.28: aa0c093cb10b3ccfb046edd0018eae1d
|
67
|
+
decidim-0.28.3: 8d73a8c852f473c118f978ddfab323b1
|
59
68
|
/app/commands/decidim/proposals/update_proposal.rb:
|
60
69
|
decidim-0.28: 1cc15b946512f4d5a54d1cf5aea8450a
|
61
70
|
/app/commands/decidim/proposals/update_collaborative_draft.rb:
|