decidim-admin 0.22.0 → 0.23.0
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/assets/javascripts/decidim/admin/application.js.es6 +3 -0
- data/app/assets/javascripts/decidim/admin/bundle.js +26 -32
- data/app/assets/javascripts/decidim/admin/bundle.js.map +1 -1
- data/app/assets/javascripts/decidim/admin/choose_language.js +12 -0
- data/app/assets/javascripts/decidim/admin/form.js.es6 +1 -0
- data/app/assets/javascripts/decidim/admin/newsletters.js.es6 +4 -0
- data/app/assets/javascripts/decidim/admin/scope_picker_enabler.component.js.es6 +14 -0
- data/app/assets/stylesheets/decidim/admin/modules/_callouts.scss +11 -0
- data/app/assets/stylesheets/decidim/admin/modules/_forms.scss +14 -0
- data/app/assets/stylesheets/decidim/admin/modules/_loading-spinner.scss +8 -0
- data/app/assets/stylesheets/decidim/admin/modules/_tabs.scss +7 -0
- data/app/commands/decidim/admin/create_attachment.rb +2 -2
- data/app/commands/decidim/admin/destroy_share_token.rb +46 -0
- data/app/commands/decidim/admin/update_content_block.rb +23 -0
- data/app/commands/decidim/admin/update_organization.rb +11 -0
- data/app/controllers/concerns/decidim/admin/participatory_space_export.rb +8 -2
- data/app/controllers/decidim/admin/application_controller.rb +1 -0
- data/app/controllers/decidim/admin/components_controller.rb +11 -1
- data/app/controllers/decidim/admin/newsletters_controller.rb +10 -0
- data/app/controllers/decidim/admin/organization_homepage_content_blocks_controller.rb +1 -0
- data/app/controllers/decidim/admin/share_tokens_controller.rb +30 -0
- data/app/forms/decidim/admin/attachment_form.rb +3 -0
- data/app/forms/decidim/admin/component_form.rb +6 -0
- data/app/forms/decidim/admin/organization_appearance_form.rb +5 -4
- data/app/forms/decidim/admin/organization_form.rb +20 -0
- data/app/forms/decidim/admin/participatory_space_private_user_csv_import_form.rb +14 -0
- data/app/forms/decidim/admin/participatory_space_private_user_form.rb +8 -2
- data/app/frontend/components/autocomplete.component.test.tsx +2 -1
- data/app/frontend/components/autocomplete.component.tsx +29 -0
- data/app/helpers/decidim/admin/application_helper.rb +1 -0
- data/app/helpers/decidim/admin/newsletters_helper.rb +3 -1
- data/app/helpers/decidim/admin/resource_scope_helper.rb +43 -0
- data/app/helpers/decidim/admin/settings_helper.rb +5 -0
- data/app/permissions/decidim/admin/permissions.rb +1 -1
- data/app/queries/decidim/admin/newsletter_recipients.rb +9 -5
- data/app/views/decidim/admin/components/_component.html.erb +5 -0
- data/app/views/decidim/admin/components/_form.html.erb +4 -0
- data/app/views/decidim/admin/components/index.html.erb +1 -0
- data/app/views/decidim/admin/exports/_dropdown.html.erb +6 -2
- data/app/views/decidim/admin/organization/_form.html.erb +21 -0
- data/app/views/decidim/admin/share_tokens/_share_tokens.html.erb +57 -0
- data/app/views/decidim/admin/static_pages/_form.html.erb +1 -1
- data/app/views/layouts/decidim/admin/_header.html.erb +1 -0
- data/config/locales/am-ET.yml +1 -0
- data/config/locales/ar.yml +0 -35
- data/config/locales/bg.yml +135 -0
- data/config/locales/ca.yml +37 -37
- data/config/locales/cs.yml +63 -63
- data/config/locales/da.yml +1 -0
- data/config/locales/de.yml +35 -36
- data/config/locales/el.yml +6 -36
- data/config/locales/en.yml +36 -36
- data/config/locales/eo.yml +51 -0
- data/config/locales/es-MX.yml +36 -36
- data/config/locales/es-PY.yml +36 -36
- data/config/locales/es.yml +42 -42
- data/config/locales/et.yml +1 -0
- data/config/locales/eu.yml +0 -35
- data/config/locales/fi-plain.yml +36 -36
- data/config/locales/fi.yml +36 -36
- data/config/locales/fr-CA.yml +36 -36
- data/config/locales/fr.yml +42 -42
- data/config/locales/gl.yml +0 -35
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +9 -36
- data/config/locales/id-ID.yml +0 -35
- data/config/locales/is-IS.yml +0 -34
- data/config/locales/is.yml +568 -0
- data/config/locales/it.yml +16 -46
- data/config/locales/ja-JP.yml +8 -2
- data/config/locales/ja.yml +849 -0
- data/config/locales/ko-KR.yml +1 -0
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +1 -0
- data/config/locales/{lv-LV.yml → lv.yml} +0 -36
- data/config/locales/mt.yml +1 -0
- data/config/locales/nl.yml +11 -36
- data/config/locales/no.yml +23 -36
- data/config/locales/om-ET.yml +1 -0
- data/config/locales/pl.yml +66 -67
- data/config/locales/pt-BR.yml +0 -35
- data/config/locales/pt.yml +6 -36
- data/config/locales/ro-RO.yml +6 -36
- data/config/locales/ru.yml +0 -35
- data/config/locales/sk.yml +0 -36
- data/config/locales/sl.yml +1 -10
- data/config/locales/so-SO.yml +1 -0
- data/config/locales/sr-CS.yml +0 -35
- data/config/locales/sv.yml +32 -38
- data/config/locales/ti-ER.yml +1 -0
- data/config/locales/tr-TR.yml +0 -35
- data/config/locales/uk.yml +0 -37
- data/config/locales/vi-VN.yml +1 -0
- data/config/locales/vi.yml +1 -0
- data/config/locales/zh-CN.yml +849 -0
- data/config/locales/zh-TW.yml +1 -0
- data/config/routes.rb +1 -1
- data/lib/decidim/admin/engine.rb +10 -8
- data/lib/decidim/admin/form_builder.rb +2 -2
- data/lib/decidim/admin/test/manage_attachment_collections_examples.rb +1 -1
- data/lib/decidim/admin/test/manage_component_permissions_examples.rb +15 -15
- data/lib/decidim/admin/version.rb +1 -1
- metadata +36 -21
- data/app/commands/decidim/admin/create_oauth_application.rb +0 -36
- data/app/commands/decidim/admin/destroy_oauth_application.rb +0 -39
- data/app/commands/decidim/admin/update_oauth_application.rb +0 -39
- data/app/controllers/decidim/admin/oauth_applications_controller.rb +0 -90
- data/app/forms/decidim/admin/oauth_application_form.rb +0 -32
- data/app/views/decidim/admin/oauth_applications/_form.html.erb +0 -19
- data/app/views/decidim/admin/oauth_applications/edit.html.erb +0 -13
- data/app/views/decidim/admin/oauth_applications/index.html.erb +0 -40
- data/app/views/decidim/admin/oauth_applications/new.html.erb +0 -13
- data/app/views/decidim/admin/oauth_applications/show.html.erb +0 -27
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# Creates an OAuthApplication.
|
6
|
-
class CreateOAuthApplication < Rectify::Command
|
7
|
-
# Initializes the command.
|
8
|
-
#
|
9
|
-
# form - The source fo data for this OAuthApplication.
|
10
|
-
def initialize(form)
|
11
|
-
@form = form
|
12
|
-
end
|
13
|
-
|
14
|
-
def call
|
15
|
-
return broadcast(:invalid) unless @form.valid?
|
16
|
-
|
17
|
-
@application = Decidim.traceability.create!(
|
18
|
-
OAuthApplication,
|
19
|
-
@form.current_user,
|
20
|
-
name: @form.name,
|
21
|
-
organization_name: @form.organization_name,
|
22
|
-
organization_url: @form.organization_url,
|
23
|
-
organization_logo: @form.organization_logo,
|
24
|
-
redirect_uri: @form.redirect_uri,
|
25
|
-
scopes: "public",
|
26
|
-
organization: @form.current_organization
|
27
|
-
)
|
28
|
-
|
29
|
-
broadcast(:ok, @application)
|
30
|
-
rescue ActiveRecord::RecordInvalid
|
31
|
-
@form.errors.add(:organization_logo, @application.errors[:organization_logo]) if @application.errors.include? :organization_logo
|
32
|
-
broadcast(:invalid)
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# This command deals with destroying an application from the admin panel.
|
6
|
-
class DestroyOAuthApplication < Rectify::Command
|
7
|
-
# Public: Initializes the command.
|
8
|
-
#
|
9
|
-
# application - The OAuthApplication to be destroyed.
|
10
|
-
# user - The user that destroys the application.
|
11
|
-
def initialize(application, current_user)
|
12
|
-
@application = application
|
13
|
-
@current_user = current_user
|
14
|
-
end
|
15
|
-
|
16
|
-
# Public: Executes the command.
|
17
|
-
#
|
18
|
-
# Broadcasts :ok if it got destroyed
|
19
|
-
def call
|
20
|
-
destroy_application
|
21
|
-
broadcast(:ok)
|
22
|
-
end
|
23
|
-
|
24
|
-
private
|
25
|
-
|
26
|
-
attr_reader :application, :current_user
|
27
|
-
|
28
|
-
def destroy_application
|
29
|
-
Decidim.traceability.perform_action!(
|
30
|
-
"delete",
|
31
|
-
application,
|
32
|
-
current_user
|
33
|
-
) do
|
34
|
-
application.destroy!
|
35
|
-
end
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# Updates the OAuth application given form data.
|
6
|
-
class UpdateOAuthApplication < Rectify::Command
|
7
|
-
# Initializes the command.
|
8
|
-
#
|
9
|
-
# application - The OAuthApplication to update.
|
10
|
-
# form - The form object containing the data to update.
|
11
|
-
# user - The user that updates the application.
|
12
|
-
def initialize(application, form, user)
|
13
|
-
@application = application
|
14
|
-
@form = form
|
15
|
-
@user = user
|
16
|
-
end
|
17
|
-
|
18
|
-
def call
|
19
|
-
return broadcast(:invalid) unless @form.valid?
|
20
|
-
return broadcast(:invalid) unless @user.organization == @application.organization
|
21
|
-
|
22
|
-
@application = Decidim.traceability.update!(
|
23
|
-
@application,
|
24
|
-
@user,
|
25
|
-
name: @form.name,
|
26
|
-
organization_name: @form.organization_name,
|
27
|
-
organization_url: @form.organization_url,
|
28
|
-
organization_logo: @form.organization_logo,
|
29
|
-
redirect_uri: @form.redirect_uri
|
30
|
-
)
|
31
|
-
|
32
|
-
broadcast(:ok, @application)
|
33
|
-
rescue ActiveRecord::RecordInvalid
|
34
|
-
@form.errors.add(:organization_logo, @application.errors[:organization_logo]) if @application.errors.include? :organization_logo
|
35
|
-
broadcast(:invalid)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
@@ -1,90 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# Controller that allows managing OAuth applications at the admin panel.
|
6
|
-
#
|
7
|
-
class OAuthApplicationsController < Admin::ApplicationController
|
8
|
-
def index
|
9
|
-
enforce_permission_to :read, :oauth_application
|
10
|
-
@oauth_applications = collection.page(params[:page]).per(15)
|
11
|
-
end
|
12
|
-
|
13
|
-
def show
|
14
|
-
@oauth_application = collection.find(params[:id])
|
15
|
-
enforce_permission_to :read, :oauth_application
|
16
|
-
end
|
17
|
-
|
18
|
-
def new
|
19
|
-
enforce_permission_to :create, :oauth_application
|
20
|
-
@form = form(OAuthApplicationForm).instance
|
21
|
-
end
|
22
|
-
|
23
|
-
def create
|
24
|
-
enforce_permission_to :create, :oauth_application
|
25
|
-
|
26
|
-
@form = form(OAuthApplicationForm).from_params(params)
|
27
|
-
|
28
|
-
CreateOAuthApplication.call(@form) do
|
29
|
-
on(:ok) do
|
30
|
-
flash[:notice] = I18n.t("oauth_applications.create.success", scope: "decidim.admin")
|
31
|
-
redirect_to action: :index
|
32
|
-
end
|
33
|
-
|
34
|
-
on(:invalid) do
|
35
|
-
flash.now[:alert] = I18n.t("oauth_applications.create.error", scope: "decidim.admin")
|
36
|
-
render :new
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def edit
|
42
|
-
@oauth_application = collection.find(params[:id])
|
43
|
-
enforce_permission_to :update, :oauth_application, oauth_application: @oauth_application
|
44
|
-
@form = form(OAuthApplicationForm).from_model(@oauth_application)
|
45
|
-
end
|
46
|
-
|
47
|
-
def update
|
48
|
-
@oauth_application = collection.find(params[:id])
|
49
|
-
enforce_permission_to :update, :oauth_application, oauth_application: @oauth_application
|
50
|
-
@form = form(OAuthApplicationForm).from_params({ organization_logo: @oauth_application.organization_logo }.merge(params.to_unsafe_h))
|
51
|
-
|
52
|
-
UpdateOAuthApplication.call(@oauth_application, @form, current_user) do
|
53
|
-
on(:ok) do |_application|
|
54
|
-
flash[:notice] = I18n.t("oauth_applications.update.success", scope: "decidim.admin")
|
55
|
-
redirect_to action: :index
|
56
|
-
end
|
57
|
-
|
58
|
-
on(:invalid) do |application|
|
59
|
-
@oauth_application = application
|
60
|
-
flash.now[:error] = I18n.t("oauth_applications.update.error", scope: "decidim.admin")
|
61
|
-
render action: :edit
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def destroy
|
67
|
-
@oauth_application = collection.find(params[:id])
|
68
|
-
enforce_permission_to :destroy, :oauth_application, oauth_application: @oauth_application
|
69
|
-
|
70
|
-
DestroyOAuthApplication.call(@oauth_application, current_user) do
|
71
|
-
on(:ok) do
|
72
|
-
flash[:notice] = I18n.t("oauth_applications.destroy.success", scope: "decidim.admin")
|
73
|
-
redirect_to action: :index
|
74
|
-
end
|
75
|
-
|
76
|
-
on(:invalid) do
|
77
|
-
flash.now[:error] = I18n.t("oauth_applications.destroy.error", scope: "decidim.admin")
|
78
|
-
redirect_to :back
|
79
|
-
end
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
private
|
84
|
-
|
85
|
-
def collection
|
86
|
-
@collection ||= current_organization.oauth_applications
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Admin
|
5
|
-
# The form that validates the data to construct a valid OAuthApplication.
|
6
|
-
class OAuthApplicationForm < Decidim::Form
|
7
|
-
mimic :oauth_application
|
8
|
-
|
9
|
-
attribute :name, String
|
10
|
-
attribute :organization_name, String
|
11
|
-
attribute :organization_url, String
|
12
|
-
attribute :organization_logo
|
13
|
-
attribute :redirect_uri, String
|
14
|
-
|
15
|
-
validates :name, :redirect_uri, :current_user, :current_organization, :organization_name, :organization_url, :organization_logo, presence: true
|
16
|
-
validates :organization_logo,
|
17
|
-
file_size: { less_than_or_equal_to: ->(_record) { Decidim.maximum_attachment_size } },
|
18
|
-
file_content_type: { allow: ["image/jpeg", "image/png"] }
|
19
|
-
validate :redirect_uri_is_ssl
|
20
|
-
|
21
|
-
private
|
22
|
-
|
23
|
-
def redirect_uri_is_ssl
|
24
|
-
return if redirect_uri.blank?
|
25
|
-
|
26
|
-
uri = URI.parse(redirect_uri)
|
27
|
-
|
28
|
-
errors.add(:redirect_uri, :must_be_ssl) if uri.host != "localhost" && uri.scheme != "https"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
<div class="row column">
|
2
|
-
<%= form.text_field :name %>
|
3
|
-
</div>
|
4
|
-
|
5
|
-
<div class="row column">
|
6
|
-
<%= form.text_field :redirect_uri %>
|
7
|
-
</div>
|
8
|
-
|
9
|
-
<div class="row column">
|
10
|
-
<%= form.text_field :organization_name %>
|
11
|
-
</div>
|
12
|
-
|
13
|
-
<div class="row column">
|
14
|
-
<%= form.text_field :organization_url %>
|
15
|
-
</div>
|
16
|
-
|
17
|
-
<div class="row column">
|
18
|
-
<%= form.upload :organization_logo %>
|
19
|
-
</div>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= decidim_form_for(@form, html: { class: "form edit_oauth_application" }) do |f| %>
|
2
|
-
<div class="card">
|
3
|
-
<div class="card-divider">
|
4
|
-
<h2 class="card-title"><%= t ".title" %></h2>
|
5
|
-
</div>
|
6
|
-
<div class="card-section">
|
7
|
-
<%= render partial: "form", object: f %>
|
8
|
-
</div>
|
9
|
-
</div>
|
10
|
-
<div class="button--double form-general-submit">
|
11
|
-
<%= f.submit t(".save") %>
|
12
|
-
</div>
|
13
|
-
<% end %>
|
@@ -1,40 +0,0 @@
|
|
1
|
-
<div class="card">
|
2
|
-
<div class="card-divider">
|
3
|
-
<h2 class="card-title">
|
4
|
-
<%= t ".title" %>
|
5
|
-
<% if allowed_to?(:create, :oauth_application) %>
|
6
|
-
<%= link_to t("actions.new", scope: "decidim.admin", name: t("models.oauth_application.name", scope: "decidim.admin").downcase), ["new", "oauth_application"], class: "button tiny button--title new" %>
|
7
|
-
<% end %>
|
8
|
-
</h2>
|
9
|
-
</div>
|
10
|
-
<div class="card-section">
|
11
|
-
<div class="table-scroll">
|
12
|
-
<table class="table-list">
|
13
|
-
<thead>
|
14
|
-
<tr>
|
15
|
-
<th><%= t("models.oauth_application.fields.name", scope: "decidim.admin") %></th>
|
16
|
-
<th><%= t("models.oauth_application.fields.created_at", scope: "decidim.admin") %></th>
|
17
|
-
<th></th>
|
18
|
-
</tr>
|
19
|
-
</thead>
|
20
|
-
<tbody>
|
21
|
-
<% @oauth_applications.each do |oauth_application| %>
|
22
|
-
<tr data-oauth_application-id="<%= oauth_application.id %>">
|
23
|
-
<td><%= link_to oauth_application.name, decidim_admin.oauth_application_path(oauth_application) %></td>
|
24
|
-
<td><%= l oauth_application.created_at, format: :long %></td>
|
25
|
-
<td class="table-list__actions">
|
26
|
-
<% if allowed_to?(:update, :oauth_application, oauth_application: oauth_application) %>
|
27
|
-
<%= icon_link_to "pencil", decidim_admin.edit_oauth_application_path(oauth_application), t("actions.edit", scope: "decidim.admin"), class: "edit" %>
|
28
|
-
<% end %>
|
29
|
-
|
30
|
-
<% if allowed_to?(:destroy, :oauth_application, oauth_application: oauth_application) %>
|
31
|
-
<%= icon_link_to "circle-x", decidim_admin.oauth_application_path(oauth_application), t("actions.destroy", scope: "decidim.admin"), method: :delete, data: { confirm: t(".confirm_delete") }, class: "action-icon--remove" %>
|
32
|
-
<% end %>
|
33
|
-
</td>
|
34
|
-
</tr>
|
35
|
-
<% end %>
|
36
|
-
</tbody>
|
37
|
-
</table>
|
38
|
-
</div>
|
39
|
-
</div>
|
40
|
-
</div>
|
@@ -1,13 +0,0 @@
|
|
1
|
-
<%= decidim_form_for(@form, html: { class: "form new_oauth_application" }) do |f| %>
|
2
|
-
<div class="card">
|
3
|
-
<div class="card-divider">
|
4
|
-
<h2 class="card-title"><%= t ".title" %></h2>
|
5
|
-
</div>
|
6
|
-
<div class="card-section">
|
7
|
-
<%= render partial: "form", object: f %>
|
8
|
-
</div>
|
9
|
-
</div>
|
10
|
-
<div class="button--double form-general-submit">
|
11
|
-
<%= f.submit t(".save") %>
|
12
|
-
</div>
|
13
|
-
<% end %>
|
@@ -1,27 +0,0 @@
|
|
1
|
-
<div class="card">
|
2
|
-
<div class="card-divider">
|
3
|
-
<h2 class="card-title"><%= @oauth_application.name %></h2>
|
4
|
-
</div>
|
5
|
-
<div class="card-section">
|
6
|
-
<dl>
|
7
|
-
<%= display_for @oauth_application,
|
8
|
-
{ uid: :client_id },
|
9
|
-
{ secret: :client_secret },
|
10
|
-
:organization_name,
|
11
|
-
:organization_url,
|
12
|
-
:redirect_uri %>
|
13
|
-
|
14
|
-
<dt><%= display_label(@oauth_application, :authorize_url) %></dt>
|
15
|
-
<dd><%= decidim.oauth_authorization_url(host: @oauth_application.owner.host) %></dd>
|
16
|
-
|
17
|
-
<dt><%= display_label(@oauth_application, :site) %></dt>
|
18
|
-
<dd><%= decidim.root_url(host: @oauth_application.owner.host) %></dd>
|
19
|
-
|
20
|
-
<dt><%= display_label(@oauth_application, :authorized_tokens) %></dt>
|
21
|
-
<dd><%= @oauth_application.authorized_tokens.count %></dd>
|
22
|
-
|
23
|
-
<dt><%= display_label(@oauth_application, :authorization_url) %></dt>
|
24
|
-
<dd><%= decidim.oauth_authorization_url(host: @oauth_application.owner.host, client_id: @oauth_application.uid, redirect_uri: @oauth_application.redirect_uri, response_type: "code") %></dd>
|
25
|
-
</dl>
|
26
|
-
</div>
|
27
|
-
</div>
|