decidim-core 0.24.0.rc1 → 0.24.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of decidim-core might be problematic. Click here for more details.

Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/decidim.js.es6 +1 -0
  3. data/app/assets/javascripts/decidim/editor/linebreak_module.js.es6 +104 -0
  4. data/app/assets/javascripts/decidim/editor/modified_enter.js.es6 +15 -10
  5. data/app/assets/javascripts/decidim/gallery.js.es6 +5 -0
  6. data/app/assets/javascripts/decidim/map/controller/markers.js.es6 +13 -1
  7. data/app/cells/decidim/activity/show.erb +1 -1
  8. data/app/cells/decidim/activity_cell.rb +6 -0
  9. data/app/cells/decidim/address/details.erb +5 -5
  10. data/app/cells/decidim/address_cell.rb +21 -0
  11. data/app/cells/decidim/announcement_cell.rb +22 -7
  12. data/app/cells/decidim/content_blocks/hero_cell.rb +2 -2
  13. data/app/cells/decidim/content_blocks/last_activity_cell.rb +1 -1
  14. data/app/commands/decidim/destroy_account.rb +2 -0
  15. data/app/controllers/concerns/decidim/devise_controllers.rb +1 -0
  16. data/app/controllers/concerns/decidim/has_stored_path.rb +40 -0
  17. data/app/controllers/concerns/decidim/paginable.rb +8 -1
  18. data/app/controllers/decidim/application_controller.rb +1 -30
  19. data/app/forms/decidim/account_form.rb +1 -1
  20. data/app/helpers/decidim/application_helper.rb +1 -0
  21. data/app/helpers/decidim/cache_helper.rb +14 -0
  22. data/app/helpers/decidim/filters_helper.rb +0 -9
  23. data/app/helpers/decidim/map_helper.rb +1 -1
  24. data/app/mailers/concerns/decidim/localised_mailer.rb +4 -2
  25. data/app/mailers/decidim/notification_mailer.rb +0 -2
  26. data/app/models/decidim/follow.rb +1 -1
  27. data/app/models/decidim/user.rb +7 -1
  28. data/app/models/decidim/user_base_entity.rb +1 -1
  29. data/app/models/decidim/user_group.rb +4 -0
  30. data/app/queries/decidim/user_groups/accepted_memberships.rb +1 -1
  31. data/app/queries/decidim/user_groups/admin_memberships.rb +1 -1
  32. data/app/queries/decidim/user_groups/member_memberships.rb +1 -1
  33. data/app/views/decidim/application/_document.html.erb +1 -1
  34. data/app/views/decidim/newsletters/show.html.erb +1 -1
  35. data/app/views/decidim/reported_mailer/report.html.erb +9 -1
  36. data/app/views/decidim/searches/_filters_small_view.html.erb +1 -1
  37. data/config/locales/ca.yml +51 -13
  38. data/config/locales/cs.yml +43 -43
  39. data/config/locales/de.yml +5 -9
  40. data/config/locales/el.yml +0 -4
  41. data/config/locales/en.yml +2 -2
  42. data/config/locales/es-MX.yml +52 -2
  43. data/config/locales/es-PY.yml +52 -2
  44. data/config/locales/es.yml +55 -5
  45. data/config/locales/eu.yml +3 -3
  46. data/config/locales/fi-plain.yml +6 -6
  47. data/config/locales/fi.yml +11 -11
  48. data/config/locales/fr-CA.yml +0 -4
  49. data/config/locales/fr.yml +1 -5
  50. data/config/locales/gl.yml +4 -0
  51. data/config/locales/is-IS.yml +7 -0
  52. data/config/locales/it.yml +6 -10
  53. data/config/locales/ja.yml +0 -3
  54. data/config/locales/nl.yml +2 -2
  55. data/config/locales/no.yml +0 -4
  56. data/config/locales/pl.yml +8 -14
  57. data/config/locales/pt.yml +0 -4
  58. data/config/locales/ro-RO.yml +88 -6
  59. data/config/locales/ru.yml +4 -6
  60. data/config/locales/sk.yml +1 -1
  61. data/config/locales/sv.yml +77 -2
  62. data/config/locales/tr-TR.yml +2 -6
  63. data/config/locales/uk.yml +4 -6
  64. data/config/locales/zh-CN.yml +0 -3
  65. data/db/migrate/20201127114444_encrypt_authorization_metadatas.rb +1 -1
  66. data/db/migrate/20210302150803_invalidate_all_sessions_for_deleted_users.rb +11 -0
  67. data/db/migrate/20210310120640_add_followable_counter_cache_to_users.rb +16 -0
  68. data/lib/decidim/api/interfaces/categorizable_interface.rb +1 -1
  69. data/lib/decidim/attribute_encryptor.rb +9 -1
  70. data/lib/decidim/core/test.rb +0 -1
  71. data/lib/decidim/core/test/shared_examples/categorizable_interface_examples.rb +14 -6
  72. data/lib/decidim/core/test/shared_examples/controller_render_views.rb +8 -3
  73. data/lib/decidim/core/test/shared_examples/localised_email.rb +8 -0
  74. data/lib/decidim/core/version.rb +1 -1
  75. data/lib/decidim/exporters/csv.rb +1 -1
  76. data/lib/decidim/followable.rb +6 -1
  77. data/lib/decidim/geocodable.rb +4 -0
  78. data/lib/decidim/record_encryptor.rb +20 -2
  79. data/lib/decidim/reportable.rb +2 -2
  80. metadata +17 -13
  81. data/lib/decidim/core/test/shared_examples/user_localised_email_examples.rb +0 -25
@@ -3,9 +3,7 @@
3
3
  shared_context "with controller rendering the view" do
4
4
  # Fix "No route matches" errors with the view.
5
5
  before do
6
- controller.class_eval do
7
- helper_method :polymorphic_path, :url_for
8
-
6
+ controller.view_context_class.class_eval do
9
7
  # Needed for the form_for to work (through decidim_form_for)
10
8
  # The path shouldn't matter in the controller specs.
11
9
  def polymorphic_path(_record, _options)
@@ -20,6 +18,13 @@ shared_context "with controller rendering the view" do
20
18
  end
21
19
  end
22
20
 
21
+ after do
22
+ # Ensure that the customized view context class is not being kept in the
23
+ # cache variable. Otherwise we might mess up the following specs using the
24
+ # same controller in the same run.
25
+ controller.class.remove_instance_variable(:@view_context_class)
26
+ end
27
+
23
28
  # Rendering of the view is necessary to see the view renders correctly
24
29
  # when there are errors on the form. This is hard to test with a
25
30
  # system test because there is some JS blocking us to submit the form
@@ -22,4 +22,12 @@ shared_examples "localised email" do
22
22
  expect(mail.body.encoded).to match(default_body)
23
23
  end
24
24
  end
25
+
26
+ context "when the user doesn't have an email" do
27
+ let(:user) { create(:user, :deleted) }
28
+
29
+ it "does nothing" do
30
+ expect(mail.deliver_now).to be_nil
31
+ end
32
+ end
25
33
  end
@@ -4,7 +4,7 @@ module Decidim
4
4
  # This holds the decidim-core version.
5
5
  module Core
6
6
  def self.version
7
- "0.24.0.rc1"
7
+ "0.24.3"
8
8
  end
9
9
  end
10
10
  end
@@ -43,7 +43,7 @@ module Decidim
43
43
  def headers
44
44
  return [] if processed_collection.empty?
45
45
 
46
- processed_collection.first.keys
46
+ processed_collection.inject([]) { |keys, resource| keys | resource.keys }
47
47
  end
48
48
 
49
49
  def processed_collection
@@ -6,7 +6,12 @@ module Decidim
6
6
  extend ActiveSupport::Concern
7
7
 
8
8
  included do
9
- has_many :follows, as: :followable, foreign_key: "decidim_followable_id", foreign_type: "decidim_followable_type", class_name: "Decidim::Follow"
9
+ has_many :follows,
10
+ as: :followable,
11
+ foreign_key: "decidim_followable_id",
12
+ foreign_type: "decidim_followable_type",
13
+ class_name: "Decidim::Follow",
14
+ counter_cache: :follows_count
10
15
  has_many :followers, through: :follows, source: :user
11
16
  end
12
17
 
@@ -27,6 +27,10 @@ module Decidim
27
27
  included do
28
28
  include Geocoder::Store::ActiveRecord
29
29
 
30
+ def geocoded_and_valid?
31
+ geocoded? && to_coordinates.none?(&:nan?)
32
+ end
33
+
30
34
  private
31
35
 
32
36
  # rubocop:disable Style/OptionalBooleanParameter
@@ -103,7 +103,7 @@ module Decidim
103
103
 
104
104
  def decrypt_value(value)
105
105
  Decidim::AttributeEncryptor.decrypt(value)
106
- rescue ActiveSupport::MessageEncryptor::InvalidMessage
106
+ rescue ActiveSupport::MessageEncryptor::InvalidMessage, ActiveSupport::MessageVerifier::InvalidSignature
107
107
  # Support for legacy unencrypted values. This is necessary e.g. when
108
108
  # migrating the original unencrypted values to encrypted values.
109
109
  value
@@ -116,7 +116,25 @@ module Decidim
116
116
  def decrypt_hash_values(hash)
117
117
  return hash unless hash.is_a?(Hash)
118
118
 
119
- hash.transform_values { |value| ActiveSupport::JSON.decode(decrypt_value(value)) }
119
+ hash.transform_values do |value|
120
+ # If the value is not a String, it is likely a legacy unencrypted hash
121
+ # value. Also, `ActiveSupport::JSON.decode` expects the value passed to
122
+ # it to be a String. Otherwise it would raise a TypeError.
123
+ next value unless value.is_a?(String)
124
+
125
+ decrypted_value = decrypt_value(value)
126
+
127
+ # When handling legacy unencrypted hash values, the decrypted values
128
+ # could not be valid JSON strings. They could be normal strings that
129
+ # cannot be JSON decoded.
130
+ begin
131
+ ActiveSupport::JSON.decode(decrypted_value)
132
+ rescue TypeError
133
+ ""
134
+ rescue JSON::ParserError
135
+ decrypted_value
136
+ end
137
+ end
120
138
  end
121
139
 
122
140
  def encrypt_hash_values(hash)
@@ -26,14 +26,14 @@ module Decidim
26
26
  #
27
27
  # Returns Boolean.
28
28
  def hidden?
29
- moderation&.hidden_at&.present?
29
+ moderation&.hidden_at&.present? || false
30
30
  end
31
31
 
32
32
  # Public: Checks if the reportable has been reported or not.
33
33
  #
34
34
  # Returns Boolean.
35
35
  def reported?
36
- moderation&.report_count&.positive?
36
+ moderation&.report_count&.positive? || false
37
37
  end
38
38
 
39
39
  # Public: The reported content url
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.0.rc1
4
+ version: 0.24.3
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: 2021-03-01 00:00:00.000000000 Z
13
+ date: 2021-06-01 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: active_link_to
@@ -88,14 +88,14 @@ dependencies:
88
88
  requirements:
89
89
  - - "~>"
90
90
  - !ruby/object:Gem::Version
91
- version: 2.2.0
91
+ version: 2.2.1
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
96
  - - "~>"
97
97
  - !ruby/object:Gem::Version
98
- version: 2.2.0
98
+ version: 2.2.1
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: cells-erb
101
101
  requirement: !ruby/object:Gem::Requirement
@@ -608,14 +608,14 @@ dependencies:
608
608
  requirements:
609
609
  - - "~>"
610
610
  - !ruby/object:Gem::Version
611
- version: 5.2.4.5
611
+ version: 5.2.6
612
612
  type: :runtime
613
613
  prerelease: false
614
614
  version_requirements: !ruby/object:Gem::Requirement
615
615
  requirements:
616
616
  - - "~>"
617
617
  - !ruby/object:Gem::Version
618
- version: 5.2.4.5
618
+ version: 5.2.6
619
619
  - !ruby/object:Gem::Dependency
620
620
  name: rails-i18n
621
621
  requirement: !ruby/object:Gem::Requirement
@@ -858,28 +858,28 @@ dependencies:
858
858
  requirements:
859
859
  - - '='
860
860
  - !ruby/object:Gem::Version
861
- version: 0.24.0.rc1
861
+ version: 0.24.3
862
862
  type: :runtime
863
863
  prerelease: false
864
864
  version_requirements: !ruby/object:Gem::Requirement
865
865
  requirements:
866
866
  - - '='
867
867
  - !ruby/object:Gem::Version
868
- version: 0.24.0.rc1
868
+ version: 0.24.3
869
869
  - !ruby/object:Gem::Dependency
870
870
  name: decidim-dev
871
871
  requirement: !ruby/object:Gem::Requirement
872
872
  requirements:
873
873
  - - '='
874
874
  - !ruby/object:Gem::Version
875
- version: 0.24.0.rc1
875
+ version: 0.24.3
876
876
  type: :development
877
877
  prerelease: false
878
878
  version_requirements: !ruby/object:Gem::Requirement
879
879
  requirements:
880
880
  - - '='
881
881
  - !ruby/object:Gem::Version
882
- version: 0.24.0.rc1
882
+ version: 0.24.3
883
883
  description: Adds core features so other engines can hook into the framework.
884
884
  email:
885
885
  - josepjaume@gmail.com
@@ -955,6 +955,7 @@ files:
955
955
  - app/assets/javascripts/decidim/form_filter.component.test.js
956
956
  - app/assets/javascripts/decidim/form_validator.es6
957
957
  - app/assets/javascripts/decidim/foundation.js.es6
958
+ - app/assets/javascripts/decidim/gallery.js.es6
958
959
  - app/assets/javascripts/decidim/geocoding.js.es6
959
960
  - app/assets/javascripts/decidim/geocoding/attach_input.js.es6
960
961
  - app/assets/javascripts/decidim/geocoding/format_address.js.es6
@@ -1370,6 +1371,7 @@ files:
1370
1371
  - app/controllers/concerns/decidim/flaggable.rb
1371
1372
  - app/controllers/concerns/decidim/force_authentication.rb
1372
1373
  - app/controllers/concerns/decidim/form_factory.rb
1374
+ - app/controllers/concerns/decidim/has_stored_path.rb
1373
1375
  - app/controllers/concerns/decidim/http_caching_disabler.rb
1374
1376
  - app/controllers/concerns/decidim/impersonate_users.rb
1375
1377
  - app/controllers/concerns/decidim/locale_switcher.rb
@@ -1492,6 +1494,7 @@ files:
1492
1494
  - app/helpers/decidim/aria_selected_link_to_helper.rb
1493
1495
  - app/helpers/decidim/attachments_helper.rb
1494
1496
  - app/helpers/decidim/authorization_form_helper.rb
1497
+ - app/helpers/decidim/cache_helper.rb
1495
1498
  - app/helpers/decidim/card_helper.rb
1496
1499
  - app/helpers/decidim/categories_helper.rb
1497
1500
  - app/helpers/decidim/cells_helper.rb
@@ -2190,6 +2193,8 @@ files:
2190
2193
  - db/migrate/20201218144706_update_table_block_user_functionality.rb
2191
2194
  - db/migrate/20201218145252_rename_decidim_user_fields_for_block_functionality.rb
2192
2195
  - db/migrate/20210208134328_add_email_on_moderations_to_users.rb
2196
+ - db/migrate/20210302150803_invalidate_all_sessions_for_deleted_users.rb
2197
+ - db/migrate/20210310120640_add_followable_counter_cache_to_users.rb
2193
2198
  - db/seeds.rb
2194
2199
  - db/seeds/homepage_image.jpg
2195
2200
  - lib/decidim/action_authorization.rb
@@ -2373,7 +2378,6 @@ files:
2373
2378
  - lib/decidim/core/test/shared_examples/timestamps_interface_examples.rb
2374
2379
  - lib/decidim/core/test/shared_examples/traceable_interface_examples.rb
2375
2380
  - lib/decidim/core/test/shared_examples/uncommentable_component_examples.rb
2376
- - lib/decidim/core/test/shared_examples/user_localised_email_examples.rb
2377
2381
  - lib/decidim/core/test/shared_examples/with_endorsable_permissions_examples.rb
2378
2382
  - lib/decidim/core/version.rb
2379
2383
  - lib/decidim/data_portability.rb
@@ -2590,9 +2594,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2590
2594
  version: '2.7'
2591
2595
  required_rubygems_version: !ruby/object:Gem::Requirement
2592
2596
  requirements:
2593
- - - ">"
2597
+ - - ">="
2594
2598
  - !ruby/object:Gem::Version
2595
- version: 1.3.1
2599
+ version: '0'
2596
2600
  requirements: []
2597
2601
  rubygems_version: 3.1.2
2598
2602
  signing_key:
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "spec_helper"
4
-
5
- shared_examples "user localised email" do
6
- let(:user) { create(:user, locale: locale, organization: organization) }
7
-
8
- context "when the user has a custom locale" do
9
- let(:locale) { "ca" }
10
-
11
- it "uses the user's locale" do
12
- expect(mail.subject).to eq(subject)
13
- expect(mail.body.encoded).to match(body)
14
- end
15
- end
16
-
17
- context "when the user does not have a custom locale" do
18
- let(:locale) { nil }
19
-
20
- it "uses the default locale" do
21
- expect(mail.subject).to eq(default_subject)
22
- expect(mail.body.encoded).to match(default_body)
23
- end
24
- end
25
- end