decidim-admin 0.27.3 → 0.27.4
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of decidim-admin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/commands/decidim/admin/block_user.rb +7 -2
- data/app/controllers/concerns/decidim/admin/needs_admin_tos_accepted.rb +42 -0
- data/app/controllers/decidim/admin/admin_terms_controller.rb +1 -1
- data/app/controllers/decidim/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/admin/space_publications_controller.rb +63 -0
- data/app/controllers/decidim/admin/static_page_topics_controller.rb +1 -3
- data/app/views/decidim/admin/area_types/edit.html.erb +1 -0
- data/app/views/decidim/admin/area_types/index.html.erb +1 -0
- data/app/views/decidim/admin/area_types/new.html.erb +1 -0
- data/app/views/decidim/admin/areas/edit.html.erb +1 -0
- data/app/views/decidim/admin/areas/index.html.erb +1 -0
- data/app/views/decidim/admin/areas/new.html.erb +1 -0
- data/app/views/decidim/admin/attachment_collections/edit.html.erb +1 -0
- data/app/views/decidim/admin/attachment_collections/index.html.erb +1 -0
- data/app/views/decidim/admin/attachment_collections/new.html.erb +1 -0
- data/app/views/decidim/admin/attachments/edit.html.erb +1 -0
- data/app/views/decidim/admin/attachments/index.html.erb +1 -0
- data/app/views/decidim/admin/attachments/new.html.erb +1 -0
- data/app/views/decidim/admin/authorization_workflows/index.html.erb +1 -0
- data/app/views/decidim/admin/categories/edit.html.erb +1 -0
- data/app/views/decidim/admin/categories/index.html.erb +1 -0
- data/app/views/decidim/admin/categories/new.html.erb +1 -0
- data/app/views/decidim/admin/components/edit.html.erb +1 -0
- data/app/views/decidim/admin/components/index.html.erb +1 -0
- data/app/views/decidim/admin/components/new.html.erb +1 -1
- data/app/views/decidim/admin/conflicts/index.html.erb +1 -0
- data/app/views/decidim/admin/help_sections/show.erb +1 -0
- data/app/views/decidim/admin/impersonatable_users/index.html.erb +1 -0
- data/app/views/decidim/admin/impersonations/new.html.erb +1 -0
- data/app/views/decidim/admin/logs/index.html.erb +1 -0
- data/app/views/decidim/admin/moderated_users/index.html.erb +1 -0
- data/app/views/decidim/admin/moderations/index.html.erb +1 -0
- data/app/views/decidim/admin/newsletter_templates/index.html.erb +1 -0
- data/app/views/decidim/admin/newsletter_templates/show.html.erb +1 -0
- data/app/views/decidim/admin/newsletters/index.html.erb +1 -0
- data/app/views/decidim/admin/newsletters/new.html.erb +1 -0
- data/app/views/decidim/admin/newsletters/show.html.erb +1 -0
- data/app/views/decidim/admin/officializations/index.html.erb +1 -0
- data/app/views/decidim/admin/officializations/new.html.erb +1 -0
- data/app/views/decidim/admin/organization/edit.html.erb +1 -0
- data/app/views/decidim/admin/organization_appearance/edit.html.erb +1 -0
- data/app/views/decidim/admin/organization_external_domain_whitelist/edit.html.erb +1 -0
- data/app/views/decidim/admin/scope_types/edit.html.erb +1 -0
- data/app/views/decidim/admin/scope_types/index.html.erb +1 -0
- data/app/views/decidim/admin/scope_types/new.html.erb +1 -0
- data/app/views/decidim/admin/scopes/edit.html.erb +1 -0
- data/app/views/decidim/admin/scopes/index.html.erb +1 -0
- data/app/views/decidim/admin/scopes/new.html.erb +1 -0
- data/app/views/decidim/admin/shared/landing_page_content_blocks/edit.html.erb +1 -0
- data/app/views/decidim/admin/static_page_topics/edit.html.erb +1 -0
- data/app/views/decidim/admin/static_page_topics/new.html.erb +1 -0
- data/app/views/decidim/admin/static_pages/edit.html.erb +1 -0
- data/app/views/decidim/admin/static_pages/index.html.erb +1 -0
- data/app/views/decidim/admin/static_pages/new.html.erb +1 -0
- data/app/views/decidim/admin/user_groups/index.html.erb +1 -0
- data/app/views/decidim/admin/user_groups_csv_verifications/new.html.erb +1 -0
- data/app/views/decidim/admin/users/index.html.erb +1 -0
- data/app/views/decidim/admin/users/new.html.erb +1 -0
- data/app/views/layouts/decidim/admin/global_moderations.html.erb +1 -0
- data/config/environment.rb +1 -0
- data/config/locales/ca.yml +3 -0
- data/config/locales/cs.yml +3 -0
- data/config/locales/de.yml +8 -1
- data/config/locales/el.yml +81 -0
- data/config/locales/en.yml +4 -1
- data/config/locales/es-MX.yml +3 -0
- data/config/locales/es-PY.yml +3 -0
- data/config/locales/es.yml +3 -0
- data/config/locales/eu.yml +8 -4
- data/config/locales/fi-plain.yml +3 -0
- data/config/locales/fi.yml +4 -1
- data/config/locales/fr-CA.yml +3 -0
- data/config/locales/fr.yml +4 -1
- data/config/locales/hu.yml +1 -0
- data/config/locales/ja.yml +4 -1
- data/config/locales/kaa.yml +202 -0
- data/config/locales/pt-BR.yml +92 -0
- data/config/locales/tr-TR.yml +3 -0
- data/lib/decidim/admin/form_builder.rb +1 -2
- data/lib/decidim/admin/test/needs_admin_tos_accepted_examples.rb +9 -0
- data/lib/decidim/admin/test.rb +1 -0
- data/lib/decidim/admin/version.rb +1 -1
- metadata +15 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2b6d361bf34645d19fff1ed2b9d2dfc9bd21d9d5f59205009c6a98aa768aa104
|
4
|
+
data.tar.gz: d6afb23b3c6d259f9c1ec1380746a90ab72c16451598e3bdba0d6e4f014d5c05
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 13c4b9f5db82ec0b5575c185f2b18b1b3bf9b11066612167c03d5f91edf47a9c824e99b60bbe3fd19289401d668526befcd6b394893a8b8932c1d1cf012dbf61
|
7
|
+
data.tar.gz: 1a12690709937d82651c02a0cab87db70a8b8c62fa8b4cd8779261ff9729961517131007ff8300d131d375ff755195fa207b4a999d621c87722b4ef322c4beb5
|
@@ -20,8 +20,9 @@ module Decidim
|
|
20
20
|
return broadcast(:invalid) unless form.valid?
|
21
21
|
|
22
22
|
transaction do
|
23
|
-
|
23
|
+
find_or_create_moderation!
|
24
24
|
register_justification!
|
25
|
+
block!
|
25
26
|
notify_user!
|
26
27
|
end
|
27
28
|
|
@@ -32,6 +33,10 @@ module Decidim
|
|
32
33
|
|
33
34
|
attr_reader :form
|
34
35
|
|
36
|
+
def find_or_create_moderation!
|
37
|
+
Decidim::UserModeration.create_or_find_by!(user: form.user)
|
38
|
+
end
|
39
|
+
|
35
40
|
def register_justification!
|
36
41
|
@current_blocking = UserBlock.create!(
|
37
42
|
justification: form.justification,
|
@@ -65,7 +70,7 @@ module Decidim
|
|
65
70
|
) do
|
66
71
|
form.user.blocked = true
|
67
72
|
form.user.blocked_at = Time.current
|
68
|
-
form.user.
|
73
|
+
form.user.block_id = @current_blocking.id
|
69
74
|
form.user.extended_data["user_name"] = form.user.name
|
70
75
|
form.user.name = "Blocked user"
|
71
76
|
form.user.save!
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
# Shared behaviour for signed_in admins that require the latest TOS accepted
|
6
|
+
module NeedsAdminTosAccepted
|
7
|
+
extend ActiveSupport::Concern
|
8
|
+
|
9
|
+
included do
|
10
|
+
before_action :tos_accepted_by_admin
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def tos_accepted_by_admin
|
16
|
+
return unless request.format.html?
|
17
|
+
return unless current_user
|
18
|
+
return if current_user.admin_terms_accepted?
|
19
|
+
return if permitted_paths?
|
20
|
+
|
21
|
+
store_location_for(
|
22
|
+
current_user,
|
23
|
+
request.path
|
24
|
+
)
|
25
|
+
redirect_to admin_tos_path
|
26
|
+
end
|
27
|
+
|
28
|
+
def permitted_paths?
|
29
|
+
# ensure that path with or without query string pass
|
30
|
+
permitted_paths.find { |el| el.split("?").first == request.path }
|
31
|
+
end
|
32
|
+
|
33
|
+
def permitted_paths
|
34
|
+
[admin_tos_path, decidim_admin.admin_terms_accept_path]
|
35
|
+
end
|
36
|
+
|
37
|
+
def admin_tos_path
|
38
|
+
decidim_admin.admin_terms_show_path
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -9,7 +9,7 @@ module Decidim
|
|
9
9
|
current_user.admin_terms_accepted_at = Time.current
|
10
10
|
if current_user.save!
|
11
11
|
flash[:notice] = t("accept.success", scope: "decidim.admin.admin_terms_of_use")
|
12
|
-
redirect_to decidim_admin.root_path
|
12
|
+
redirect_to stored_location_for(current_user) || decidim_admin.root_path
|
13
13
|
else
|
14
14
|
flash[:alert] = t("accept.error", scope: "decidim.admin.admin_terms_of_use")
|
15
15
|
redirect_to decidim_admin.admin_terms_show_path
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Decidim
|
4
|
+
module Admin
|
5
|
+
# Base controller that can be inherited by other spaces to publish and unpublish the Space
|
6
|
+
#
|
7
|
+
class SpacePublicationsController < Decidim::Assemblies::Admin::ApplicationController
|
8
|
+
def create
|
9
|
+
enforce_permission_to_publish
|
10
|
+
|
11
|
+
publish_command.call(current_assembly, current_user) do
|
12
|
+
on(:ok) do
|
13
|
+
flash[:notice] = I18n.t("create.success", scope: i18n_scope)
|
14
|
+
end
|
15
|
+
|
16
|
+
on(:invalid) do
|
17
|
+
flash.now[:alert] = I18n.t("create.error", scope: i18n_scope)
|
18
|
+
end
|
19
|
+
|
20
|
+
redirect_back(fallback_location: assemblies_path)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def destroy
|
25
|
+
enforce_permission_to_publish
|
26
|
+
|
27
|
+
unpublish_command.call(current_assembly, current_user) do
|
28
|
+
on(:ok) do
|
29
|
+
flash[:notice] = I18n.t("destroy.success", scope: i18n_scope)
|
30
|
+
end
|
31
|
+
|
32
|
+
on(:invalid) do
|
33
|
+
flash.now[:alert] = I18n.t("destroy.error", scope: i18n_scope)
|
34
|
+
end
|
35
|
+
|
36
|
+
redirect_back(fallback_location: assemblies_path)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def current_participatory_space
|
43
|
+
raise "Not implemented"
|
44
|
+
end
|
45
|
+
|
46
|
+
def enforce_permission_to_publish
|
47
|
+
raise "Not implemented"
|
48
|
+
end
|
49
|
+
|
50
|
+
def publish_command
|
51
|
+
raise "Not implemented"
|
52
|
+
end
|
53
|
+
|
54
|
+
def unpublish_command
|
55
|
+
raise "Not implemented"
|
56
|
+
end
|
57
|
+
|
58
|
+
def i18n_scope
|
59
|
+
raise "Not implemented"
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t("attachment_collections.edit.title", scope: "decidim.admin")) %>
|
1
2
|
<%= decidim_form_for(@form, url: url_for([@attachment_collection.collection_for, @attachment_collection]), html: { class: "form edit_attachment_collection" }) do |f| %>
|
2
3
|
<%= render partial: "decidim/admin/attachment_collections/form", object: f, locals: { title: t("attachment_collections.edit.title", scope: "decidim.admin") } %>
|
3
4
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t("attachment_collections.new.title", scope: "decidim.admin")) %>
|
1
2
|
<%= decidim_form_for(@form, url: url_for([collection_for, @form]), html: { class: "form new_attachment_collection" }) do |f| %>
|
2
3
|
<%= render partial: "decidim/admin/attachment_collections/form", object: f, locals: { title: t("attachment_collections.new.title", scope: "decidim.admin") } %>
|
3
4
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t(".title")) %>
|
1
2
|
<%= decidim_form_for(@form, url: url_for([@attachment.attached_to, @attachment]), html: { class: "form edit_attachment" }) do |f| %>
|
2
3
|
<%= render partial: "decidim/admin/attachments/form", object: f, locals: { title: t(".title") } %>
|
3
4
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t("categories.new.title", scope: "decidim.admin")) %>
|
1
2
|
<%= decidim_form_for(@form, url: categories_path(current_participatory_space), html: { class: "form new_category" }) do |f| %>
|
2
3
|
<%= render partial: "form", object: f, locals: { title: t("categories.new.title", scope: "decidim.admin") } %>
|
3
4
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t(".title", name: t("#{@component.manifest.name}.name", scope: "decidim.components"))) %>
|
1
2
|
<%= decidim_form_for([current_participatory_space, @form], url: component_path(current_participatory_space, @component), method: "put", html: { class: "form edit_component" }) do |form| %>
|
2
3
|
<%= render partial: "form", object: form, locals: { component: @component, title: t(".title", name: t("#{@component.manifest.name}.name", scope: "decidim.components")) } %>
|
3
4
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
<% add_decidim_page_title(t(".title", name: t("#{manifest.name}.name", scope: "decidim.components"))) %>
|
2
2
|
<%= decidim_form_for([current_participatory_space, @form], url: components_path(type: params[:type]), method: "post", html: { class: "form new_component" }) do |form| %>
|
3
3
|
<%= render partial: "form", object: form, locals: { component: @component, title: t(".title", name: t("#{manifest.name}.name", scope: "decidim.components")) } %>
|
4
4
|
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t("edit_organization_appearance", scope: "decidim.admin.titles")) %>
|
1
2
|
<%= decidim_form_for(@form, html: { class: "form edit_organization_appearance" }, url: organization_appearance_path, method: :put) do |f| %>
|
2
3
|
<%= render partial: "form", object: f %>
|
3
4
|
<div class="button--double form-general-submit">
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<% add_decidim_page_title(t("edit_external_domains", scope: "decidim.admin.titles")) %>
|
1
2
|
<%= decidim_form_for(@form, html: { class: "form edit_organization_external_domain_whitelist" }, url: organization_external_domain_whitelist_path, method: :patch) do |f| %>
|
2
3
|
<%= render partial: "form", object: f %>
|
3
4
|
<div class="button--double form-general-submit">
|
@@ -0,0 +1 @@
|
|
1
|
+
# frozen_string_literal: true
|
data/config/locales/ca.yml
CHANGED
@@ -982,9 +982,12 @@ ca:
|
|
982
982
|
areas: Àrees
|
983
983
|
authorization_workflows: Mètodes de verificació
|
984
984
|
dashboard: Tauler de control
|
985
|
+
edit_external_domains: Llistat de dominis externs permesos
|
986
|
+
edit_organization_appearance: Edita l'aparença de la pàgina d'inici
|
985
987
|
impersonatable_users: Participants que es poden gestionar
|
986
988
|
impersonations: Gestió de participants
|
987
989
|
metrics: Mètriques
|
990
|
+
pages: Pàgines
|
988
991
|
panel: Administradora
|
989
992
|
participants: Participants
|
990
993
|
scope_types: Tipus d'àmbit
|
data/config/locales/cs.yml
CHANGED
@@ -992,9 +992,12 @@ cs:
|
|
992
992
|
areas: Oblasti
|
993
993
|
authorization_workflows: Metody ověření
|
994
994
|
dashboard: Ovládací panel
|
995
|
+
edit_external_domains: Seznam externích povolených domén
|
996
|
+
edit_organization_appearance: Upravit vzhled domovské stránky
|
995
997
|
impersonatable_users: Spravovatelní účastníci
|
996
998
|
impersonations: Správa účastníků
|
997
999
|
metrics: Metriky
|
1000
|
+
pages: Stránky
|
998
1001
|
panel: Admin
|
999
1002
|
participants: Uživatelé
|
1000
1003
|
scope_types: Typy oblastí působnosti
|
data/config/locales/de.yml
CHANGED
@@ -342,7 +342,7 @@ de:
|
|
342
342
|
success: Die Komponente wurde erfolgreich veröffentlicht.
|
343
343
|
title: Komponenten
|
344
344
|
unpublish:
|
345
|
-
success: Die Komponente wurde erfolgreich
|
345
|
+
success: Die Veröffentlichung der Komponente wurde erfolgreich zurückgezogen.
|
346
346
|
update:
|
347
347
|
error: Beim Aktualisieren dieser Komponente ist ein Fehler aufgetreten.
|
348
348
|
success: Die Komponente wurde erfolgreich aktualisiert.
|
@@ -654,6 +654,7 @@ de:
|
|
654
654
|
nickname: Spitzname
|
655
655
|
reason: Grund
|
656
656
|
reports: Anzahl Meldungen
|
657
|
+
title: Gemeldete Teilnehmende
|
657
658
|
report:
|
658
659
|
reasons:
|
659
660
|
does_not_belong: Gehört nicht zu
|
@@ -663,6 +664,8 @@ de:
|
|
663
664
|
blocked: Blockiert
|
664
665
|
unblocked: Nicht blockiert
|
665
666
|
moderations:
|
667
|
+
index:
|
668
|
+
title: Gemeldeter Inhalt
|
666
669
|
report:
|
667
670
|
reasons:
|
668
671
|
does_not_belong: Gehört nicht
|
@@ -979,9 +982,12 @@ de:
|
|
979
982
|
areas: Bereiche
|
980
983
|
authorization_workflows: Verifizierungsmethoden
|
981
984
|
dashboard: Instrumententafel
|
985
|
+
edit_external_domains: Externe Domain-Whitelist
|
986
|
+
edit_organization_appearance: Homepage-Erscheinungsbild bearbeiten
|
982
987
|
impersonatable_users: Überschaubare Benutzer
|
983
988
|
impersonations: Benutzerverwaltung
|
984
989
|
metrics: Kriterien
|
990
|
+
pages: Seiten
|
985
991
|
panel: Admin
|
986
992
|
participants: Benutzer
|
987
993
|
scope_types: Bereichstypen
|
@@ -1073,6 +1079,7 @@ de:
|
|
1073
1079
|
moderation:
|
1074
1080
|
fields:
|
1075
1081
|
created_at: Erstellungsdatum
|
1082
|
+
deleted_resource: Gelöschte Ressource
|
1076
1083
|
hidden_at: Versteckt bei
|
1077
1084
|
participatory_space: Beteiligungsbereich
|
1078
1085
|
report_count: Anzahl
|