decidim-reporting_proposals 0.5.1 → 0.5.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1c31fb493fe1dcdc1729de5b5fa4c8d794936b909945669882edec96f5394806
4
- data.tar.gz: 5d7e54593eec73a4fa6216758466b121e8f3442128be1ceaca0d8922aa8eee33
3
+ metadata.gz: 557fb713574d707b2c60bbfad4178058d4b8e38864ecd7f23efc7430d32cef0a
4
+ data.tar.gz: 2344db1ea4e1bc83c0f62bdcdd1401121912580c88dfc9b65656a95f983a1c2f
5
5
  SHA512:
6
- metadata.gz: e3771d1642893bf230a5b19187294ea43f44b2b61da1745326b3d6be7b49668c4c8370d77d157204d09750ceba3ab4f613c4a766d66667596f4e5ebcf80e39b9
7
- data.tar.gz: 80f730ab582dad444cb25541ea7253802b2f17f010b7b5fbf655d0683695930a52cdd4ac58e0a0afb65ca7208d10ffbf85438bf169a9796828ef29dddaadeca0
6
+ metadata.gz: c1784b775ece69f3858daa07d14606ed68c19937de374d8501ab51ac24df8572063fb3bdd04979081fc5b81b1e9037839fe5f8b0b72fe199a23c9526819d80d1
7
+ data.tar.gz: 40e89f2934794e3c3b74831b55721e3f6441dd27a5f642b34ba5ae64edba5c2fba6b88baaddb24b96f6b56c25a0641c81aec33f6a6e482bbee164895db713f9e
@@ -8,7 +8,7 @@ on:
8
8
 
9
9
  env:
10
10
  CI: "true"
11
- RUBY_VERSION: 3.0.5
11
+ RUBY_VERSION: 3.0.6
12
12
  NODE_VERSION: 16.9.1
13
13
 
14
14
  jobs:
@@ -8,8 +8,8 @@ on:
8
8
 
9
9
  env:
10
10
  CI: "true"
11
- CODECOV: "true"
12
- RUBY_VERSION: 3.0.5
11
+ SIMPLECOV: "true"
12
+ RUBY_VERSION: 3.0.6
13
13
  NODE_VERSION: 16.9.1
14
14
  RAILS_ENV: test
15
15
  DATABASE_USERNAME: postgres
@@ -68,7 +68,7 @@ jobs:
68
68
 
69
69
  test:
70
70
  name: Integration Tests
71
- runs-on: ubuntu-20.04
71
+ runs-on: ubuntu-latest
72
72
  needs: build
73
73
  strategy:
74
74
  matrix:
@@ -8,8 +8,8 @@ on:
8
8
 
9
9
  env:
10
10
  CI: "true"
11
- CODECOV: "true"
12
- RUBY_VERSION: 3.0.5
11
+ SIMPLECOV: "true"
12
+ RUBY_VERSION: 3.0.6
13
13
  NODE_VERSION: 16.9.1
14
14
 
15
15
  jobs:
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.0.5
1
+ 3.0.6
data/.simplecov CHANGED
@@ -1,13 +1,18 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- SimpleCov.start do
4
- root ENV.fetch("ENGINE_ROOT", nil)
3
+ if ENV["SIMPLECOV"]
4
+ SimpleCov.start do
5
+ # We ignore some of the files because they are never tested
6
+ add_filter "/config/"
7
+ add_filter "/db/"
8
+ add_filter "lib/decidim/reporting_proposals/version.rb"
9
+ add_filter "/spec"
10
+ end
5
11
 
6
- add_filter "lib/decidim/reporting_proposals/version.rb"
7
- add_filter "lib/decidim/reporting_proposals/component.rb"
8
- add_filter "/spec"
9
- end
10
-
11
- SimpleCov.command_name ENV.fetch("COMMAND_NAME", nil) || File.basename(Dir.pwd)
12
+ SimpleCov.merge_timeout 1800
12
13
 
13
- SimpleCov.merge_timeout 1800
14
+ if ENV["CI"]
15
+ require "simplecov-cobertura"
16
+ SimpleCov.formatter = SimpleCov::Formatter::CoberturaFormatter
17
+ end
18
+ end
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- decidim-reporting_proposals (0.5.1)
4
+ decidim-reporting_proposals (0.5.2)
5
5
  decidim-admin (>= 0.27.0, < 0.28)
6
6
  decidim-core (>= 0.27.0, < 0.28)
7
7
  decidim-participatory_processes (>= 0.27.0, < 0.28)
@@ -873,7 +873,7 @@ DEPENDENCIES
873
873
  web-console
874
874
 
875
875
  RUBY VERSION
876
- ruby 3.0.5p211
876
+ ruby 3.0.6p216
877
877
 
878
878
  BUNDLED WITH
879
879
  2.3.20
@@ -23,6 +23,28 @@ module Decidim
23
23
  end
24
24
  end
25
25
 
26
+ def destroy
27
+ @form = form(Admin::ValuationAssignmentForm).from_params(destroy_params)
28
+
29
+ enforce_permission_to :unassign_from_valuator, :proposals, valuator: @form.valuator_user
30
+
31
+ Admin::UnassignProposalsFromValuator.call(@form) do
32
+ on(:ok) do |_proposal|
33
+ flash.keep[:notice] = I18n.t("valuation_assignments.delete.success", scope: "decidim.proposals.admin")
34
+ if current_user == @form.valuator_user
35
+ redirect_to EngineRouter.admin_proxy(current_component).root_path
36
+ else
37
+ redirect_back fallback_location: EngineRouter.admin_proxy(current_component).root_path
38
+ end
39
+ end
40
+
41
+ on(:invalid) do
42
+ flash.keep[:alert] = I18n.t("valuation_assignments.delete.invalid", scope: "decidim.proposals.admin")
43
+ redirect_back fallback_location: EngineRouter.admin_proxy(current_component).root_path
44
+ end
45
+ end
46
+ end
47
+
26
48
  def after_add_evaluator_url
27
49
  return request.referer if request.referer.present? && request.referer =~ %r{manage/proposals/[0-9]+}
28
50
 
@@ -10,6 +10,8 @@ module Decidim
10
10
  included do
11
11
  helper_method :reporting_proposal?, :proposals, :query, :form_presenter, :proposal, :proposal_ids
12
12
  def show
13
+ enforce_permission_to :show, :proposal, proposal: proposal
14
+
13
15
  @notes_form = form(Decidim::Proposals::Admin::ProposalNoteForm).instance
14
16
  @answer_form = form(Decidim::Proposals::Admin::ProposalAnswerForm).from_model(proposal)
15
17
  @photo_form = form(Decidim::ReportingProposals::Admin::ProposalPhotoForm).instance
@@ -7,8 +7,81 @@ module Decidim
7
7
  extend ActiveSupport::Concern
8
8
 
9
9
  included do
10
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
11
+ def permissions
12
+ # The public part needs to be implemented yet
13
+ return permission_action if permission_action.scope != :admin
14
+
15
+ # Valuators can only perform these actions
16
+ if user_is_valuator?
17
+ if valuator_assigned_to_proposal?
18
+ can_create_proposal_note?
19
+ can_create_proposal_answer?
20
+ allow! if action_is_show_on_proposal?
21
+ elsif action_is_show_on_proposal?
22
+ disallow!
23
+ end
24
+ can_export_proposals?
25
+ valuator_can_unassign_valuator_from_proposals?
26
+
27
+ return permission_action
28
+ end
29
+
30
+ if create_permission_action?
31
+ can_create_proposal_note?
32
+ can_create_proposal_from_admin?
33
+ can_create_proposal_answer?
34
+ end
35
+
36
+ # Allow any admin user to view a proposal.
37
+ allow! if action_is_show_on_proposal?
38
+
39
+ # Admins can only edit official proposals if they are within the
40
+ # time limit.
41
+ allow! if permission_action.subject == :proposal && permission_action.action == :edit && admin_edition_is_available?
42
+
43
+ # Every user allowed by the space can update the category of the proposal
44
+ allow! if permission_action.subject == :proposal_category && permission_action.action == :update
45
+
46
+ # Every user allowed by the space can update the scope of the proposal
47
+ allow! if permission_action.subject == :proposal_scope && permission_action.action == :update
48
+
49
+ # Every user allowed by the space can import proposals from another_component
50
+ allow! if permission_action.subject == :proposals && permission_action.action == :import
51
+
52
+ # Every user allowed by the space can export proposals
53
+ can_export_proposals?
54
+
55
+ # Every user allowed by the space can merge proposals to another component
56
+ allow! if permission_action.subject == :proposals && permission_action.action == :merge
57
+
58
+ # Every user allowed by the space can split proposals to another component
59
+ allow! if permission_action.subject == :proposals && permission_action.action == :split
60
+
61
+ # Every user allowed by the space can assign proposals to a valuator
62
+ allow! if permission_action.subject == :proposals && permission_action.action == :assign_to_valuator
63
+
64
+ # Every user allowed by the space can unassign a valuator from proposals
65
+ can_unassign_valuator_from_proposals?
66
+
67
+ # Only admin users can publish many answers at once
68
+ toggle_allow(user.admin?) if permission_action.subject == :proposals && permission_action.action == :publish_answers
69
+
70
+ if permission_action.subject == :participatory_texts && participatory_texts_are_enabled? && permission_action.action == :manage
71
+ # Every user allowed by the space can manage (import, update and publish) participatory texts to proposals
72
+ allow!
73
+ end
74
+
75
+ permission_action
76
+ end
77
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
78
+
10
79
  private
11
80
 
81
+ def action_is_show_on_proposal?
82
+ permission_action.subject == :proposal && permission_action.action == :show
83
+ end
84
+
12
85
  def valuator_can_unassign_valuator_from_proposals?
13
86
  can_unassign_valuator_from_proposals? if user == context.fetch(:valuator, nil)
14
87
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Decidim
4
4
  module ReportingProposals
5
- VERSION = "0.5.1"
5
+ VERSION = "0.5.2"
6
6
  DECIDIM_VERSION = "0.27.4"
7
7
 
8
8
  COMPAT_DECIDIM_VERSION = [">= 0.27.0", "< 0.28"].freeze
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-reporting_proposals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Vergés
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-09-15 00:00:00.000000000 Z
11
+ date: 2023-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: decidim-admin