decidim-direct_verifications 0.17.8 → 1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +43 -2
  3. data/app/assets/config/direct_verifications_admin_manifest.css +3 -0
  4. data/app/assets/stylesheets/decidim/direct_verifications/authorizations.scss +17 -0
  5. data/app/commands/decidim/direct_verifications/verification/create_import.rb +50 -0
  6. data/app/controllers/decidim/direct_verifications/verification/admin/authorizations_controller.rb +40 -0
  7. data/app/controllers/decidim/direct_verifications/verification/admin/direct_verifications_controller.rb +71 -46
  8. data/app/controllers/decidim/direct_verifications/verification/admin/imports_controller.rb +55 -0
  9. data/app/forms/decidim/direct_verifications/registration_form.rb +8 -0
  10. data/app/forms/decidim/direct_verifications/verification/create_import_form.rb +43 -0
  11. data/app/jobs/decidim/direct_verifications/authorize_users_job.rb +34 -0
  12. data/app/jobs/decidim/direct_verifications/base_import_job.rb +38 -0
  13. data/app/jobs/decidim/direct_verifications/register_users_job.rb +19 -0
  14. data/app/jobs/decidim/direct_verifications/revoke_users_job.rb +17 -0
  15. data/app/mailers/decidim/direct_verifications/import_mailer.rb +27 -0
  16. data/app/mailers/decidim/direct_verifications/stats.rb +23 -0
  17. data/app/views/decidim/direct_verifications/import_mailer/finished_processing.html.erb +7 -0
  18. data/app/views/decidim/direct_verifications/import_mailer/finished_processing.text.erb +7 -0
  19. data/app/views/decidim/direct_verifications/verification/admin/authorizations/index.html.erb +42 -0
  20. data/app/views/decidim/direct_verifications/verification/admin/direct_verifications/index.html.erb +18 -17
  21. data/app/views/decidim/direct_verifications/verification/admin/imports/new.html.erb +50 -0
  22. data/app/views/decidim/direct_verifications/verification/admin/stats/index.html.erb +3 -3
  23. data/config/initializers/mail_previews.rb +5 -0
  24. data/config/locales/ca.yml +25 -20
  25. data/config/locales/cs.yml +69 -0
  26. data/config/locales/en.yml +34 -2
  27. data/config/locales/es.yml +25 -20
  28. data/config/locales/fr.yml +69 -0
  29. data/lib/decidim/direct_verifications.rb +24 -1
  30. data/lib/decidim/direct_verifications/authorize_user.rb +64 -0
  31. data/lib/decidim/direct_verifications/instrumenter.rb +58 -0
  32. data/lib/decidim/direct_verifications/parsers.rb +11 -0
  33. data/lib/decidim/direct_verifications/parsers/base_parser.rb +37 -0
  34. data/lib/decidim/direct_verifications/parsers/metadata_parser.rb +54 -0
  35. data/lib/decidim/direct_verifications/parsers/name_parser.rb +40 -0
  36. data/lib/decidim/direct_verifications/register_user.rb +54 -0
  37. data/lib/decidim/direct_verifications/revoke_user.rb +45 -0
  38. data/lib/decidim/direct_verifications/tests/factories.rb +11 -0
  39. data/lib/decidim/direct_verifications/tests/verification_controller_examples.rb +83 -0
  40. data/lib/decidim/direct_verifications/user_processor.rb +18 -98
  41. data/lib/decidim/direct_verifications/user_stats.rb +9 -6
  42. data/lib/decidim/direct_verifications/verification/admin_engine.rb +6 -1
  43. data/lib/decidim/direct_verifications/version.rb +3 -2
  44. metadata +38 -9
  45. data/lib/decidim/direct_verifications/config.rb +0 -23
@@ -22,7 +22,7 @@ module Decidim
22
22
  end
23
23
 
24
24
  def unconfirmed
25
- registered_users.where("decidim_users.confirmed_at IS NULL").count
25
+ registered_users.where(decidim_users: { confirmed_at: nil }).count
26
26
  end
27
27
 
28
28
  def authorized
@@ -30,7 +30,7 @@ module Decidim
30
30
  end
31
31
 
32
32
  def authorized_unconfirmed
33
- authorized_users.where("decidim_users.confirmed_at IS NULL").count
33
+ authorized_users.where(decidim_users: { confirmed_at: nil }).count
34
34
  end
35
35
 
36
36
  private
@@ -39,12 +39,12 @@ module Decidim
39
39
  if authorization_handler.empty?
40
40
  filter = { decidim_organization_id: organization.id }
41
41
  filter[:email] = emails unless emails.empty?
42
- return User.where(filter).where.not(email: '')
42
+ return User.where(filter).where.not(email: "")
43
43
  end
44
- authorized_users(false)
44
+ authorized_users(strict: false)
45
45
  end
46
46
 
47
- def authorized_users(strict = true)
47
+ def authorized_users(strict: true)
48
48
  q = Decidim::Authorization.joins(:user)
49
49
  unless authorization_handler.empty?
50
50
  q = q.where(name: authorization_handler)
@@ -55,17 +55,20 @@ module Decidim
55
55
  end
56
56
  q = q.where("decidim_users.decidim_organization_id=:org and decidim_users.email!=''", org: organization.id)
57
57
  return q if emails.empty?
58
- q.where("decidim_users.email IN (:emails)", emails: emails)
58
+
59
+ q.where(decidim_users: { email: emails })
59
60
  end
60
61
 
61
62
  def expires_in
62
63
  return unless workflow_manifest
63
64
  return if workflow_manifest.expires_in.zero?
65
+
64
66
  workflow_manifest.expires_in
65
67
  end
66
68
 
67
69
  def workflow_manifest
68
70
  return if authorization_handler.empty?
71
+
69
72
  @workflow_manifest ||= Decidim::Verifications.find_workflow_manifest(authorization_handler)
70
73
  end
71
74
  end
@@ -10,12 +10,17 @@ module Decidim
10
10
  routes do
11
11
  resources :direct_verifications, only: [:index, :create, :stats]
12
12
  resources :stats, only: [:index]
13
+ resources :authorizations, only: [:index, :destroy]
14
+ resources :imports, only: [:new, :create]
13
15
 
14
16
  root to: "direct_verifications#index"
15
17
  end
16
18
 
17
19
  initializer "decidim_direct_verifications.admin_assets" do |app|
18
- app.config.assets.precompile += %w(direct_verifications_admin_manifest.js)
20
+ app.config.assets.precompile += %w(
21
+ direct_verifications_admin_manifest.js
22
+ direct_verifications_admin_manifest.css
23
+ )
19
24
  end
20
25
  end
21
26
  end
@@ -3,7 +3,8 @@
3
3
  module Decidim
4
4
  # This holds the decidim-direct_verifications version.
5
5
  module DirectVerifications
6
- VERSION = "0.17.8"
7
- DECIDIM_VERSION = ">= 0.17.1"
6
+ VERSION = "1.0"
7
+ DECIDIM_VERSION = "0.24.3"
8
+ MIN_DECIDIM_VERSION = ">= 0.23.0"
8
9
  end
9
10
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-direct_verifications
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.8
4
+ version: '1.0'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Vergés
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-12 00:00:00.000000000 Z
11
+ date: 2021-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: decidim-admin
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.17.1
19
+ version: 0.23.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.17.1
26
+ version: 0.23.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: decidim-core
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 0.17.1
33
+ version: 0.23.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 0.17.1
40
+ version: 0.23.0
41
41
  description: Provides a verification method that also registers users directly in
42
42
  the platform. Can be used to mass verificate user with other verification handlers
43
43
  email:
@@ -49,23 +49,52 @@ files:
49
49
  - LICENSE-AGPLv3.txt
50
50
  - README.md
51
51
  - Rakefile
52
+ - app/assets/config/direct_verifications_admin_manifest.css
52
53
  - app/assets/config/direct_verifications_admin_manifest.js
53
54
  - app/assets/javascripts/decidim/direct_verifications/verification/admin/direct_verifications_admin.js.es6
55
+ - app/assets/stylesheets/decidim/direct_verifications/authorizations.scss
54
56
  - app/commands/decidim/direct_verifications/verification/confirm_user_authorization.rb
57
+ - app/commands/decidim/direct_verifications/verification/create_import.rb
55
58
  - app/commands/decidim/direct_verifications/verification/destroy_user_authorization.rb
59
+ - app/controllers/decidim/direct_verifications/verification/admin/authorizations_controller.rb
56
60
  - app/controllers/decidim/direct_verifications/verification/admin/direct_verifications_controller.rb
61
+ - app/controllers/decidim/direct_verifications/verification/admin/imports_controller.rb
57
62
  - app/controllers/decidim/direct_verifications/verification/admin/stats_controller.rb
58
63
  - app/controllers/decidim/direct_verifications/verification/authorizations_controller.rb
64
+ - app/forms/decidim/direct_verifications/registration_form.rb
65
+ - app/forms/decidim/direct_verifications/verification/create_import_form.rb
59
66
  - app/forms/decidim/direct_verifications/verification/direct_verifications_form.rb
67
+ - app/jobs/decidim/direct_verifications/authorize_users_job.rb
68
+ - app/jobs/decidim/direct_verifications/base_import_job.rb
69
+ - app/jobs/decidim/direct_verifications/register_users_job.rb
70
+ - app/jobs/decidim/direct_verifications/revoke_users_job.rb
71
+ - app/mailers/decidim/direct_verifications/import_mailer.rb
72
+ - app/mailers/decidim/direct_verifications/stats.rb
73
+ - app/views/decidim/direct_verifications/import_mailer/finished_processing.html.erb
74
+ - app/views/decidim/direct_verifications/import_mailer/finished_processing.text.erb
75
+ - app/views/decidim/direct_verifications/verification/admin/authorizations/index.html.erb
60
76
  - app/views/decidim/direct_verifications/verification/admin/direct_verifications/index.html.erb
77
+ - app/views/decidim/direct_verifications/verification/admin/imports/new.html.erb
61
78
  - app/views/decidim/direct_verifications/verification/admin/stats/index.html.erb
62
79
  - app/views/devise/mailer/direct_invite.html.erb
63
80
  - app/views/devise/mailer/direct_invite.text.erb
81
+ - config/initializers/mail_previews.rb
64
82
  - config/locales/ca.yml
83
+ - config/locales/cs.yml
65
84
  - config/locales/en.yml
66
85
  - config/locales/es.yml
86
+ - config/locales/fr.yml
67
87
  - lib/decidim/direct_verifications.rb
68
- - lib/decidim/direct_verifications/config.rb
88
+ - lib/decidim/direct_verifications/authorize_user.rb
89
+ - lib/decidim/direct_verifications/instrumenter.rb
90
+ - lib/decidim/direct_verifications/parsers.rb
91
+ - lib/decidim/direct_verifications/parsers/base_parser.rb
92
+ - lib/decidim/direct_verifications/parsers/metadata_parser.rb
93
+ - lib/decidim/direct_verifications/parsers/name_parser.rb
94
+ - lib/decidim/direct_verifications/register_user.rb
95
+ - lib/decidim/direct_verifications/revoke_user.rb
96
+ - lib/decidim/direct_verifications/tests/factories.rb
97
+ - lib/decidim/direct_verifications/tests/verification_controller_examples.rb
69
98
  - lib/decidim/direct_verifications/user_processor.rb
70
99
  - lib/decidim/direct_verifications/user_stats.rb
71
100
  - lib/decidim/direct_verifications/verification.rb
@@ -86,14 +115,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
86
115
  requirements:
87
116
  - - ">="
88
117
  - !ruby/object:Gem::Version
89
- version: '2.5'
118
+ version: '2.7'
90
119
  required_rubygems_version: !ruby/object:Gem::Requirement
91
120
  requirements:
92
121
  - - ">="
93
122
  - !ruby/object:Gem::Version
94
123
  version: '0'
95
124
  requirements: []
96
- rubygems_version: 3.0.3
125
+ rubygems_version: 3.1.4
97
126
  signing_key:
98
127
  specification_version: 4
99
128
  summary: A decidim batch direct registration and verification module
@@ -1,23 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Decidim
4
- module DirectVerifications
5
- class << self
6
- attr_accessor :config
7
- def configure
8
- yield self.config ||= Config.new
9
- end
10
- end
11
-
12
- class Config
13
- attr_reader :manage_workflows
14
- def manage_workflows=(manage_workflows)
15
- @manage_workflows.concat(manage_workflows).uniq!
16
- end
17
-
18
- def initialize
19
- @manage_workflows = ["direct_verifications"]
20
- end
21
- end
22
- end
23
- end