decidim-admin 0.11.2 → 0.12.0.pre

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.

Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim/admin/application.js.es6 +5 -1
  3. data/app/assets/javascripts/decidim/admin/bundle.js +47 -0
  4. data/app/assets/javascripts/decidim/admin/bundle.js.map +1 -0
  5. data/app/assets/javascripts/decidim/admin/component_permissions.js.es6 +13 -0
  6. data/app/assets/javascripts/decidim/admin/managed_users.js.es6 +2 -1
  7. data/app/assets/javascripts/decidim/admin/subform_toggler.component.js.es6 +14 -7
  8. data/app/assets/stylesheets/decidim/admin/_decidim.scss +2 -0
  9. data/app/assets/stylesheets/decidim/admin/bundle.scss +1 -0
  10. data/app/assets/stylesheets/decidim/admin/components/_autocomplete_select.component.scss +13 -0
  11. data/app/assets/stylesheets/decidim/admin/modules/_secondary-nav.scss +3 -2
  12. data/app/assets/stylesheets/decidim/admin/modules/_table-list.scss +7 -0
  13. data/app/commands/decidim/admin/create_static_page.rb +7 -1
  14. data/app/commands/decidim/admin/update_component_permissions.rb +9 -3
  15. data/app/commands/decidim/admin/update_organization_tos_version.rb +47 -0
  16. data/app/commands/decidim/admin/update_static_page.rb +5 -0
  17. data/app/constraints/decidim/admin/organization_dashboard_constraint.rb +6 -3
  18. data/app/controllers/concerns/decidim/admin/participatory_space_admin_context.rb +2 -2
  19. data/app/controllers/decidim/admin/application_controller.rb +14 -5
  20. data/app/controllers/decidim/admin/area_types_controller.rb +6 -6
  21. data/app/controllers/decidim/admin/areas_controller.rb +6 -6
  22. data/app/controllers/decidim/admin/authorization_workflows_controller.rb +1 -1
  23. data/app/controllers/decidim/admin/categories_controller.rb +7 -7
  24. data/app/controllers/decidim/admin/component_permissions_controller.rb +20 -8
  25. data/app/controllers/decidim/admin/components/base_controller.rb +19 -3
  26. data/app/controllers/decidim/admin/components_controller.rb +8 -8
  27. data/app/controllers/decidim/admin/concerns/has_attachment_collections.rb +8 -8
  28. data/app/controllers/decidim/admin/concerns/has_attachments.rb +11 -9
  29. data/app/controllers/decidim/admin/concerns/has_private_users.rb +5 -5
  30. data/app/controllers/decidim/admin/dashboard_controller.rb +4 -2
  31. data/app/controllers/decidim/admin/exports_controller.rb +1 -1
  32. data/app/controllers/decidim/admin/impersonatable_users_controller.rb +7 -1
  33. data/app/controllers/decidim/admin/impersonations_controller.rb +2 -4
  34. data/app/controllers/decidim/admin/logs_controller.rb +4 -2
  35. data/app/controllers/decidim/admin/managed_users/impersonation_logs_controller.rb +0 -2
  36. data/app/controllers/decidim/admin/managed_users/promotions_controller.rb +2 -2
  37. data/app/controllers/decidim/admin/moderations_controller.rb +4 -4
  38. data/app/controllers/decidim/admin/newsletters_controller.rb +9 -9
  39. data/app/controllers/decidim/admin/oauth_applications_controller.rb +7 -7
  40. data/app/controllers/decidim/admin/officializations_controller.rb +4 -5
  41. data/app/controllers/decidim/admin/organization_appearance_controller.rb +2 -2
  42. data/app/controllers/decidim/admin/organization_controller.rb +21 -2
  43. data/app/controllers/decidim/admin/scope_types_controller.rb +6 -6
  44. data/app/controllers/decidim/admin/scopes_controller.rb +7 -7
  45. data/app/controllers/decidim/admin/static_pages_controller.rb +16 -7
  46. data/app/controllers/decidim/admin/user_groups_controller.rb +3 -3
  47. data/app/controllers/decidim/admin/users_controller.rb +5 -5
  48. data/app/forms/decidim/admin/managed_user_promotion_form.rb +1 -1
  49. data/app/forms/decidim/admin/permission_form.rb +12 -15
  50. data/app/forms/decidim/admin/static_page_form.rb +1 -0
  51. data/app/frontend/components/autocomplete.component.test.tsx +19 -0
  52. data/app/frontend/components/autocomplete.component.tsx +169 -0
  53. data/app/frontend/entry.ts +17 -0
  54. data/app/frontend/entry_test.ts +4 -0
  55. data/app/helpers/decidim/admin/application_helper.rb +0 -4
  56. data/app/permissions/decidim/admin/permissions.rb +161 -0
  57. data/app/permissions/decidim/admin/user_manager_permissions.rb +66 -0
  58. data/app/views/decidim/admin/area_types/index.html.erb +8 -4
  59. data/app/views/decidim/admin/areas/index.html.erb +6 -3
  60. data/app/views/decidim/admin/attachment_collections/index.html.erb +3 -3
  61. data/app/views/decidim/admin/attachment_collections/show.html.erb +2 -2
  62. data/app/views/decidim/admin/attachments/index.html.erb +3 -3
  63. data/app/views/decidim/admin/attachments/show.html.erb +2 -2
  64. data/app/views/decidim/admin/categories/index.html.erb +5 -5
  65. data/app/views/decidim/admin/categories/show.html.erb +2 -2
  66. data/app/views/decidim/admin/component_permissions/_options_form.html.erb +14 -0
  67. data/app/views/decidim/admin/component_permissions/edit.html.erb +37 -16
  68. data/app/views/decidim/admin/components/_component.html.erb +6 -4
  69. data/app/views/decidim/admin/components/_form.html.erb +6 -6
  70. data/app/views/decidim/admin/dashboard/show.html.erb +1 -1
  71. data/app/views/decidim/admin/impersonatable_users/index.html.erb +5 -3
  72. data/app/views/decidim/admin/moderations/index.html.erb +2 -2
  73. data/app/views/decidim/admin/newsletters/index.html.erb +5 -3
  74. data/app/views/decidim/admin/newsletters/show.html.erb +1 -1
  75. data/app/views/decidim/admin/oauth_applications/index.html.erb +5 -3
  76. data/app/views/decidim/admin/participatory_space_private_users/index.html.erb +3 -3
  77. data/app/views/decidim/admin/scope_types/index.html.erb +5 -3
  78. data/app/views/decidim/admin/scopes/index.html.erb +4 -4
  79. data/app/views/decidim/admin/static_pages/_form.html.erb +3 -1
  80. data/app/views/decidim/admin/static_pages/_form_notable_changes.html.erb +9 -0
  81. data/app/views/decidim/admin/static_pages/index.html.erb +11 -3
  82. data/app/views/decidim/admin/static_pages/show.html.erb +2 -2
  83. data/app/views/decidim/admin/user_groups/index.html.erb +2 -2
  84. data/app/views/decidim/admin/users/index.html.erb +5 -3
  85. data/app/views/layouts/decidim/admin/_application.html.erb +0 -1
  86. data/app/views/layouts/decidim/admin/_template_top.html.erb +1 -0
  87. data/app/views/layouts/decidim/admin/users.html.erb +4 -4
  88. data/config/locales/ca.yml +8 -0
  89. data/config/locales/en.yml +8 -0
  90. data/config/locales/es.yml +8 -0
  91. data/config/locales/eu.yml +8 -0
  92. data/config/locales/fi.yml +8 -0
  93. data/config/locales/fr.yml +8 -0
  94. data/config/locales/gl.yml +8 -0
  95. data/config/locales/it.yml +8 -0
  96. data/config/locales/nl.yml +8 -0
  97. data/config/locales/pl.yml +8 -0
  98. data/config/locales/pt-BR.yml +8 -0
  99. data/config/locales/pt.yml +8 -0
  100. data/config/locales/ru.yml +11 -3
  101. data/config/locales/sv.yml +8 -0
  102. data/config/locales/uk.yml +8 -0
  103. data/config/routes.rb +5 -1
  104. data/lib/decidim/admin.rb +1 -0
  105. data/lib/decidim/admin/engine.rb +17 -20
  106. data/lib/decidim/admin/form_builder.rb +64 -0
  107. data/lib/decidim/admin/test/manage_component_permissions_examples.rb +92 -15
  108. data/lib/decidim/admin/version.rb +1 -1
  109. metadata +25 -17
  110. data/app/models/decidim/admin/abilities/admin_ability.rb +0 -76
  111. data/app/models/decidim/admin/abilities/base_ability.rb +0 -21
  112. data/app/models/decidim/admin/abilities/participatory_process_admin_ability.rb +0 -58
  113. data/app/models/decidim/admin/abilities/participatory_process_collaborator_ability.rb +0 -19
  114. data/app/models/decidim/admin/abilities/participatory_process_moderator_ability.rb +0 -23
  115. data/app/models/decidim/admin/abilities/user_manager_ability.rb +0 -34
  116. data/app/models/decidim/admin/application_record.rb +0 -11
@@ -0,0 +1,64 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Decidim
4
+ module Admin
5
+ # This custom FormBuilder extends the FormBuilder present in core with
6
+ # fields only used in admin.
7
+ class FormBuilder < Decidim::FormBuilder
8
+ # Generates a select field with autocompletion using ajax
9
+ #
10
+ # @param [Symbol] attribute
11
+ # The name of the object's attribute (usually something like user_id)
12
+ # @param [Object] selected
13
+ # An instance of the selected value
14
+ # @param [Hash] options
15
+ # A optional set of options to render the field:
16
+ # - :label (boolean|string) (optional) You can disable the creation of the input label passing false,
17
+ # or override the default label passing a string (default: name of the input)
18
+ # - :name (string) You can provide a custom name for the field to be submitted
19
+ # @param [Hash] prompt_options
20
+ # Prompt configuration. A hash with options:
21
+ # - :url (String) The url where the ajax endpoint to fill the select
22
+ # - :placeholder (String) Text to use as placeholder
23
+ # - :no_results (String) (optional) Text to use when there are no matching results (default: No results found)
24
+ # - :search_prompt (String) (optional) Text to prompt for search input (default: Type at least three characters to search)
25
+ #
26
+ # @yield [resource]
27
+ # It should receive a block that returns a Hash for the selected option with:
28
+ # - value: This will be the value of the option select.
29
+ # - label: This will be the label of the option select.
30
+ #
31
+ # @example How to use it
32
+ # <% prompt_options = { url: users_url, text: t(".select_user") }
33
+ # options = { label: t(".user") } %>
34
+ # <%= form.autocomplete_select(:user_id, form.object.user.presence, options, prompt_options) do |user|
35
+ # { value: user.id, label: "#{user.name} (#{user.nickname})" }
36
+ # end %>
37
+ #
38
+ # @return [String]
39
+ # The HTML ready to output in the view
40
+ #
41
+ def autocomplete_select(attribute, selected = nil, options = {}, prompt_options = {})
42
+ selected = yield(selected) if selected
43
+
44
+ template = ""
45
+ template += label(attribute, (options[:label] || label_for(attribute)) + required_for_attribute(attribute)) unless options[:label] == false
46
+ template += content_tag(:div, nil, data: {
47
+ autocomplete: {
48
+ name: options[:name] || "#{@object_name}[#{attribute}]",
49
+ options: [selected].compact,
50
+ placeholder: prompt_options[:placeholder],
51
+ searchURL: prompt_options[:url],
52
+ selected: selected ? selected[:value] : "",
53
+ searchPromptText: options[:search_prompt] || I18n.t("autocomplete.search_prompt", scope: "decidim.admin"),
54
+ noResultsText: options[:no_results] || I18n.t("autocomplete.no_results", scope: "decidim.admin")
55
+ },
56
+ autocomplete_for: attribute,
57
+ plugin: "autocomplete"
58
+ })
59
+ template += error_for(attribute, options) if error?(attribute)
60
+ template.html_safe
61
+ end
62
+ end
63
+ end
64
+ end
@@ -3,7 +3,12 @@
3
3
  require "spec_helper"
4
4
 
5
5
  shared_examples "Managing component permissions" do
6
- let(:organization) { create(:organization, available_authorizations: ["dummy_authorization_handler"]) }
6
+ let(:organization) do
7
+ create(
8
+ :organization,
9
+ available_authorizations: %w(dummy_authorization_handler another_dummy_authorization_handler)
10
+ )
11
+ end
7
12
 
8
13
  let!(:component) do
9
14
  create(:component, participatory_space: participatory_space)
@@ -13,28 +18,100 @@ shared_examples "Managing component permissions" do
13
18
  switch_to_host(organization.host)
14
19
  login_as user, scope: :user
15
20
  visit participatory_space_engine.components_path(participatory_space)
21
+ end
16
22
 
17
- within ".component-#{component.id}" do
18
- click_link "Permissions"
23
+ context "when setting permissions" do
24
+ before do
25
+ within ".component-#{component.id}" do
26
+ click_link "Permissions"
27
+ end
28
+ end
29
+
30
+ it "saves permission settings in the component" do
31
+ within "form.new_component_permissions" do
32
+ within ".foo-permission" do
33
+ select "Example authorization", from: "component_permissions_permissions_foo_authorization_handler_name"
34
+ fill_in "component_permissions_permissions_foo_options_postal_code", with: "08002"
35
+ end
36
+ find("*[type=submit]").click
37
+ end
38
+
39
+ expect(page).to have_content("successfully")
40
+
41
+ expect(component.reload.permissions["foo"]).to(
42
+ include(
43
+ "authorization_handler_name" => "dummy_authorization_handler",
44
+ "options" => { "postal_code" => "08002" }
45
+ )
46
+ )
19
47
  end
20
48
  end
21
49
 
22
- it "allows setting permissions with json options" do
23
- within "form.new_component_permissions" do
24
- within ".foo-permission" do
25
- select "Example authorization", from: "component_permissions_permissions_foo_authorization_handler_name"
26
- fill_in "component_permissions_permissions_foo_options", with: '{ "foo": 123 }'
50
+ context "when unsetting permissions" do
51
+ before do
52
+ component.update!(
53
+ permissions: {
54
+ "foo" => {
55
+ "authorization_handler_name" => "dummy_authorization_handler",
56
+ "options" => { "postal_code" => "08002" }
57
+ }
58
+ }
59
+ )
60
+
61
+ within ".component-#{component.id}" do
62
+ click_link "Permissions"
27
63
  end
28
- find("*[type=submit]").click
29
64
  end
30
65
 
31
- expect(page).to have_content("successfully")
66
+ it "removes the action from the permissions hash" do
67
+ within "form.new_component_permissions" do
68
+ within ".foo-permission" do
69
+ select "Everyone", from: "component_permissions_permissions_foo_authorization_handler_name"
70
+ end
71
+
72
+ find("*[type=submit]").click
73
+ end
74
+
75
+ expect(page).to have_content("successfully")
32
76
 
33
- expect(component.reload.permissions["foo"]).to(
34
- include(
35
- "authorization_handler_name" => "dummy_authorization_handler",
36
- "options" => { "foo" => 123 }
77
+ expect(component.reload.permissions["foo"]).to be_nil
78
+ end
79
+ end
80
+
81
+ context "when changing existing permissions" do
82
+ before do
83
+ component.update!(
84
+ permissions: {
85
+ "foo" => {
86
+ "authorization_handler_name" => "dummy_authorization_handler",
87
+ "options" => { "postal_code" => "08002" }
88
+ }
89
+ }
37
90
  )
38
- )
91
+
92
+ within ".component-#{component.id}" do
93
+ click_link "Permissions"
94
+ end
95
+ end
96
+
97
+ it "changes the configured action in the permissions hash" do
98
+ within "form.new_component_permissions" do
99
+ within ".foo-permission" do
100
+ select "Another example authorization", from: "component_permissions_permissions_foo_authorization_handler_name"
101
+ fill_in "component_permissions_permissions_foo_options_passport_number", with: "AXXXXXXXX"
102
+ end
103
+
104
+ find("*[type=submit]").click
105
+ end
106
+
107
+ expect(page).to have_content("successfully")
108
+
109
+ expect(component.reload.permissions["foo"]).to(
110
+ include(
111
+ "authorization_handler_name" => "another_dummy_authorization_handler",
112
+ "options" => { "passport_number" => "AXXXXXXXX" }
113
+ )
114
+ )
115
+ end
39
116
  end
40
117
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-admin version.
5
5
  module Admin
6
6
  def self.version
7
- "0.11.2"
7
+ "0.12.0.pre"
8
8
  end
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.2
4
+ version: 0.12.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-06-13 00:00:00.000000000 Z
13
+ date: 2018-06-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.11.2
35
+ version: 0.12.0.pre
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.11.2
42
+ version: 0.12.0.pre
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: devise
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -116,28 +116,28 @@ dependencies:
116
116
  requirements:
117
117
  - - '='
118
118
  - !ruby/object:Gem::Version
119
- version: 0.11.2
119
+ version: 0.12.0.pre
120
120
  type: :development
121
121
  prerelease: false
122
122
  version_requirements: !ruby/object:Gem::Requirement
123
123
  requirements:
124
124
  - - '='
125
125
  - !ruby/object:Gem::Version
126
- version: 0.11.2
126
+ version: 0.12.0.pre
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: decidim-participatory_processes
129
129
  requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - '='
132
132
  - !ruby/object:Gem::Version
133
- version: 0.11.2
133
+ version: 0.12.0.pre
134
134
  type: :development
135
135
  prerelease: false
136
136
  version_requirements: !ruby/object:Gem::Requirement
137
137
  requirements:
138
138
  - - '='
139
139
  - !ruby/object:Gem::Version
140
- version: 0.11.2
140
+ version: 0.12.0.pre
141
141
  description: Organization administration to manage a single organization.
142
142
  email:
143
143
  - josepjaume@gmail.com
@@ -153,6 +153,9 @@ files:
153
153
  - app/assets/javascripts/decidim/admin/application.js.es6
154
154
  - app/assets/javascripts/decidim/admin/auto_buttons_by_position.component.js.es6
155
155
  - app/assets/javascripts/decidim/admin/auto_label_by_position.component.js.es6
156
+ - app/assets/javascripts/decidim/admin/bundle.js
157
+ - app/assets/javascripts/decidim/admin/bundle.js.map
158
+ - app/assets/javascripts/decidim/admin/component_permissions.js.es6
156
159
  - app/assets/javascripts/decidim/admin/dynamic_fields.component.js.es6
157
160
  - app/assets/javascripts/decidim/admin/field_dependent_inputs.component.js.es6
158
161
  - app/assets/javascripts/decidim/admin/managed_users.js.es6
@@ -163,6 +166,8 @@ files:
163
166
  - app/assets/stylesheets/decidim/admin/_decidim.scss
164
167
  - app/assets/stylesheets/decidim/admin/_variables.scss
165
168
  - app/assets/stylesheets/decidim/admin/application.scss.erb
169
+ - app/assets/stylesheets/decidim/admin/bundle.scss
170
+ - app/assets/stylesheets/decidim/admin/components/_autocomplete_select.component.scss
166
171
  - app/assets/stylesheets/decidim/admin/extra/_action-icon.scss
167
172
  - app/assets/stylesheets/decidim/admin/extra/_cards.scss
168
173
  - app/assets/stylesheets/decidim/admin/extra/_categories.scss
@@ -272,6 +277,7 @@ files:
272
277
  - app/commands/decidim/admin/update_oauth_application.rb
273
278
  - app/commands/decidim/admin/update_organization.rb
274
279
  - app/commands/decidim/admin/update_organization_appearance.rb
280
+ - app/commands/decidim/admin/update_organization_tos_version.rb
275
281
  - app/commands/decidim/admin/update_scope.rb
276
282
  - app/commands/decidim/admin/update_scope_type.rb
277
283
  - app/commands/decidim/admin/update_static_page.rb
@@ -331,6 +337,10 @@ files:
331
337
  - app/forms/decidim/admin/scope_form.rb
332
338
  - app/forms/decidim/admin/scope_type_form.rb
333
339
  - app/forms/decidim/admin/static_page_form.rb
340
+ - app/frontend/components/autocomplete.component.test.tsx
341
+ - app/frontend/components/autocomplete.component.tsx
342
+ - app/frontend/entry.ts
343
+ - app/frontend/entry_test.ts
334
344
  - app/helpers/decidim/admin/application_helper.rb
335
345
  - app/helpers/decidim/admin/areas_helper.rb
336
346
  - app/helpers/decidim/admin/attributes_display_helper.rb
@@ -346,13 +356,8 @@ files:
346
356
  - app/jobs/decidim/admin/newsletter_delivery_job.rb
347
357
  - app/jobs/decidim/admin/newsletter_job.rb
348
358
  - app/mailers/decidim/admin/application_mailer.rb
349
- - app/models/decidim/admin/abilities/admin_ability.rb
350
- - app/models/decidim/admin/abilities/base_ability.rb
351
- - app/models/decidim/admin/abilities/participatory_process_admin_ability.rb
352
- - app/models/decidim/admin/abilities/participatory_process_collaborator_ability.rb
353
- - app/models/decidim/admin/abilities/participatory_process_moderator_ability.rb
354
- - app/models/decidim/admin/abilities/user_manager_ability.rb
355
- - app/models/decidim/admin/application_record.rb
359
+ - app/permissions/decidim/admin/permissions.rb
360
+ - app/permissions/decidim/admin/user_manager_permissions.rb
356
361
  - app/queries/decidim/admin/user_filter.rb
357
362
  - app/queries/decidim/admin/user_groups_evaluation.rb
358
363
  - app/views/decidim/admin/area_types/_form.html.erb
@@ -381,6 +386,7 @@ files:
381
386
  - app/views/decidim/admin/categories/index.html.erb
382
387
  - app/views/decidim/admin/categories/new.html.erb
383
388
  - app/views/decidim/admin/categories/show.html.erb
389
+ - app/views/decidim/admin/component_permissions/_options_form.html.erb
384
390
  - app/views/decidim/admin/component_permissions/edit.html.erb
385
391
  - app/views/decidim/admin/components/_component.html.erb
386
392
  - app/views/decidim/admin/components/_form.html.erb
@@ -431,6 +437,7 @@ files:
431
437
  - app/views/decidim/admin/scopes/index.html.erb
432
438
  - app/views/decidim/admin/scopes/new.html.erb
433
439
  - app/views/decidim/admin/static_pages/_form.html.erb
440
+ - app/views/decidim/admin/static_pages/_form_notable_changes.html.erb
434
441
  - app/views/decidim/admin/static_pages/edit.html.erb
435
442
  - app/views/decidim/admin/static_pages/index.html.erb
436
443
  - app/views/decidim/admin/static_pages/new.html.erb
@@ -475,6 +482,7 @@ files:
475
482
  - lib/decidim/admin.rb
476
483
  - lib/decidim/admin/components.rb
477
484
  - lib/decidim/admin/engine.rb
485
+ - lib/decidim/admin/form_builder.rb
478
486
  - lib/decidim/admin/test.rb
479
487
  - lib/decidim/admin/test/commands/create_attachment_collection_examples.rb
480
488
  - lib/decidim/admin/test/commands/create_category_examples.rb
@@ -508,9 +516,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
508
516
  version: '2.3'
509
517
  required_rubygems_version: !ruby/object:Gem::Requirement
510
518
  requirements:
511
- - - ">="
519
+ - - ">"
512
520
  - !ruby/object:Gem::Version
513
- version: '0'
521
+ version: 1.3.1
514
522
  requirements: []
515
523
  rubyforge_project:
516
524
  rubygems_version: 2.7.6
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- module Abilities
6
- # Defines the abilities for a user in the admin section. Intended to be
7
- # used with `cancancan`.
8
- class AdminAbility < Decidim::Abilities::AdminAbility
9
- def define_abilities
10
- super
11
-
12
- can :read, :admin_log
13
-
14
- can :manage, Category
15
- can :manage, ParticipatoryProcessUserRole
16
-
17
- can [:create, :update, :index, :new, :read], StaticPage
18
-
19
- can([:update_slug, :destroy], [StaticPage, StaticPageForm]) do |page|
20
- !StaticPage.default?(page.slug)
21
- end
22
-
23
- can([:read, :update], Decidim::Organization) do |organization|
24
- organization == user.organization
25
- end
26
-
27
- can :manage, Component
28
- can :manage, :admin_users
29
-
30
- can :read, :impersonatable_users
31
-
32
- can(:impersonate, Decidim::User) do |user_to_impersonate|
33
- available_authorization_handlers? &&
34
- !user_to_impersonate.admin? &&
35
- user_to_impersonate.roles.empty? &&
36
- Decidim::ImpersonationLog.active.where(admin: user).empty?
37
- end
38
-
39
- can(:promote, Decidim::User) do |user_to_promote|
40
- user_to_promote.managed? && Decidim::ImpersonationLog.active.where(admin: user).empty?
41
- end
42
-
43
- can :manage, Moderation
44
- can :manage, Attachment
45
- can :manage, AttachmentCollection
46
- can :manage, Scope
47
- can :manage, ScopeType
48
- can :manage, Area
49
- can :manage, AreaType
50
- can :manage, Newsletter
51
- can :manage, :oauth_applications
52
- can :manage, OAuthApplication
53
-
54
- can [:create, :index, :new, :read, :invite], User
55
-
56
- can([:destroy], [User]) do |user_to_destroy|
57
- user != user_to_destroy
58
- end
59
-
60
- can [:index, :verify, :reject], UserGroup
61
- can [:index, :new, :create, :destroy], :officializations
62
-
63
- can :index, :authorization_workflows
64
-
65
- can [:index, :update], Authorization
66
- end
67
-
68
- private
69
-
70
- def available_authorization_handlers?
71
- user.organization.available_authorization_handlers.any?
72
- end
73
- end
74
- end
75
- end
76
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module Admin
5
- module Abilities
6
- # Defines the abilities for a user in the admin section. Intended to be
7
- # used with `cancancan`. Extended by both the base `Decidim::Ability`
8
- # class and other engine-only abilities, like the
9
- # `ParticipatoryProcessAdmin` ability class.
10
- class BaseAbility
11
- include CanCan::Ability
12
-
13
- def initialize(user, context)
14
- Decidim.admin_abilities.each do |ability|
15
- merge ability.constantize.new(user, context)
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end