decidim-idcat_mobil 0.0.4 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df636b40348a962fe4db942aa3c490e9bb02395981fb8181bda991621e19ee22
4
- data.tar.gz: 2e466d9cc5f86c12a4b7d632ba13d9c560f1306bdb2e70b7f9cd3bf3264455e3
3
+ metadata.gz: 23d738c9fde7cd2069188887f0290aa1605e9993c3aaf77aab18dc4f15d15808
4
+ data.tar.gz: b6f5ccf8a4e8b876d37f1f23f5bb3c2809ef0ae9fd9a56322638003ddaceeff3
5
5
  SHA512:
6
- metadata.gz: 1c613d378ccc623c09c3e7b6afc5c811e511b0f3f0283a626578c403447cad9c7450986064e24658d372dfe22d076bf78b9fe3410e666de0668fae5da68c345b
7
- data.tar.gz: b104c32a81ff8bf27ee0d61ede525c7250753d2f45503f42b67b64768f673c180ae61897a2bcb62ad70656f351fd05d10523368f8a7fc1607874323f85d2022e
6
+ metadata.gz: b789de69eaee60be5a5e0dd6543d9e521ee11346e76787f1026305048ea5477c2556b587f39ab4dd7666904cf321fea876eabc88e0ce4b421052927771adcd51
7
+ data.tar.gz: eb16a519d19e55dd74fc74c46b974af258e3aaf456e19caa9cd9947f0f76e9493495e940e707fd4a6ba338694e10a60b82d7e23e1790615393c4722f84c7590a
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Decidim::IdcatMobil
2
2
 
3
- User registration, login and verification through IdCat mòbil, an authentication method that uses OAuth 2.0 protocol.
3
+ User registration and login through IdCat Mòbil, an authentication method that uses OAuth 2.0 protocol.
4
4
  _IdCat mòbil_ is an identity validator from VÀLid (Validador d'Identitats del Consorci AOC).
5
5
 
6
+ User verification via IdCat Mòbil was started but is incomplete.
7
+
6
8
  ## Installation
7
9
 
8
10
  Add this line to your application's Gemfile:
@@ -19,11 +21,11 @@ bundle install
19
21
 
20
22
  ## Usage
21
23
 
22
- To use it you have to first configure the omniauth-idcat_mobil and then this gem as a verification handler.
24
+ To use it you have to first configure the omniauth-idcat_mobil.
23
25
 
24
26
  ### omniauth-idcat_mobil configuration
25
27
  `IdCat mòbil` will be available as a configurable OAuth2 strategy.
26
- Check how to configure the strategy in [Decidim's related documentation](). The summary is that you have to edit your `config/secrets.rb` and simply enable the strategy:
28
+ Check how to configure the strategy in [Decidim's related documentation](https://github.com/decidim/decidim/blob/develop/docs/services/social_providers.md). The summary is that you have to edit your `config/secrets.rb` and simply enable the strategy:
27
29
 
28
30
  ```yaml
29
31
  omniauth:
@@ -32,11 +34,15 @@ Check how to configure the strategy in [Decidim's related documentation](). The
32
34
  icon_path: decidim/idcat_mobil/icon.svg
33
35
  ```
34
36
 
35
- Omniauth's configuration is setted in `config/initializers/omniauth_idcat_mobil.rb`. Nothing has to be modified there but it expects `IDCAT_MOBIL_CLIENT_ID`, `IDCAT_MOBIL_CLIENT_SECRET` and `IDCAT_MOBIL_SITE_URL` environment variables to be setted.
37
+ Remember to set `IDCAT_MOBIL_CLIENT_ID`, `IDCAT_MOBIL_CLIENT_SECRET` and `IDCAT_MOBIL_SITE_URL` environment variables.
36
38
 
37
39
 
38
40
  Refer to `omniauth-idcat_mobil` gem for further documentation.
39
41
 
42
+ ## TODO
43
+
44
+ - User Verification development has to be finished.
45
+
40
46
  ## Contributing
41
47
 
42
48
  See [Decidim](https://github.com/decidim/decidim).
@@ -46,15 +52,18 @@ See [Decidim](https://github.com/decidim/decidim).
46
52
  Create a dummy app in your application (if not present):
47
53
 
48
54
  ```bash
49
- bin/rails decidim:generate_external_test_app
55
+ bundle exec rake decidim:generate_external_test_app
50
56
  ```
51
57
 
52
58
  And run tests:
53
59
 
54
60
  ```bash
55
- rspec spec
61
+ bundle exec rspec spec/
56
62
  ```
57
63
 
58
64
  ## License
59
65
 
60
- This engine is distributed under the GNU AFFERO GENERAL PUBLIC LICENSE.
66
+
67
+ The Department d'Exteriors of [Generalitat de Catalunya](http://gencat.cat) makes this gem available as open source under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE.
68
+
69
+ Authored by [CodiTramuntana](http://coditramuntana.com).
@@ -4,10 +4,11 @@ module Decidim
4
4
  module IdcatMobil
5
5
  class VerificationInvalidNotification < Decidim::Events::SimpleEvent
6
6
  def resource_path
7
- 'http'
7
+ "http"
8
8
  end
9
+
9
10
  def resource_url
10
- 'http'
11
+ "http"
11
12
  end
12
13
  end
13
14
  end
@@ -4,10 +4,11 @@ module Decidim
4
4
  module IdcatMobil
5
5
  class VerificationSuccessNotification < Decidim::Events::SimpleEvent
6
6
  def resource_path
7
- 'http'
7
+ "http"
8
8
  end
9
+
9
10
  def resource_url
10
- 'http'
11
+ "http"
11
12
  end
12
13
  end
13
14
  end
@@ -7,14 +7,14 @@ module Decidim
7
7
  attribute :oauth_data, Hash
8
8
 
9
9
  validates :unique_id, presence: true
10
- validate :is_idcatmobil_method, :has_ok_status
10
+ validate :idcatmobil_method?, :has_ok_status?
11
11
 
12
12
  def unique_id
13
- oauth_data['identifier']
13
+ oauth_data["identifier"]
14
14
  end
15
15
 
16
16
  def metadata
17
- oauth_data
17
+ oauth_data
18
18
  end
19
19
 
20
20
  def user
@@ -23,15 +23,19 @@ module Decidim
23
23
 
24
24
  #-----------------------------------------------------------
25
25
  private
26
+
26
27
  #-----------------------------------------------------------
27
28
 
28
- def is_idcatmobil_method
29
- return true if oauth_data['method'] == 'idcatmobil'
29
+ def idcatmobil_method?
30
+ return true if oauth_data["method"] == "idcatmobil"
31
+
30
32
  errors.add(:base, I18n.t("decidim.verifications.idcat_mobil.errors.invalid_method"))
31
33
  false
32
34
  end
33
- def has_ok_status
34
- return true if oauth_data['status'] == 'ok'
35
+
36
+ def has_ok_status?
37
+ return true if oauth_data["status"] == "ok"
38
+
35
39
  errors.add(:base, I18n.t("decidim.verifications.idcat_mobil.errors.invalid_status"))
36
40
  false
37
41
  end
@@ -6,7 +6,7 @@ module Decidim
6
6
  queue_as :default
7
7
 
8
8
  def perform(oauth_data)
9
- handler= retrieve_handler(oauth_data)
9
+ handler = retrieve_handler(oauth_data)
10
10
  Decidim::Verifications::AuthorizeUser.call(handler) do
11
11
  on(:ok) do
12
12
  notify_user(handler.user, :ok, handler)
@@ -20,15 +20,16 @@ module Decidim
20
20
 
21
21
  #-----------------------------------------------------------
22
22
  private
23
+
23
24
  #-----------------------------------------------------------
24
25
 
25
26
  # Retrieves handler from Verification workflows registry.
26
27
  def retrieve_handler(oauth_data)
27
- Decidim::AuthorizationHandler.handler_for('idcat_mobil', oauth_data: oauth_data)
28
+ Decidim::AuthorizationHandler.handler_for("idcat_mobil", oauth_data: oauth_data)
28
29
  end
29
30
 
30
31
  def notify_user(user, status, handler)
31
- notification_class= status == :ok ? Decidim::IdcatMobil::VerificationSuccessNotification : Decidim::IdcatMobil::VerificationInvalidNotification
32
+ notification_class = status == :ok ? Decidim::IdcatMobil::VerificationSuccessNotification : Decidim::IdcatMobil::VerificationInvalidNotification
32
33
  Decidim::EventsManager.publish(
33
34
  event: "decidim.verifications.idcat_mobil.#{status}",
34
35
  event_class: notification_class,
@@ -1,11 +1,20 @@
1
- OmniAuth.config.logger= Rails.logger
1
+ # frozen_string_literal: true
2
2
 
3
- Devise.setup do |config|
4
- config.omniauth :idcat_mobil,
5
- ENV["IDCAT_MOBIL_CLIENT_ID"],
6
- ENV["IDCAT_MOBIL_CLIENT_SECRET"],
7
- ENV["IDCAT_MOBIL_SITE_URL"],
8
- scope: :autenticacio_usuari
9
- end
3
+ OmniAuth.config.logger = Rails.logger
10
4
 
11
- Decidim::User.omniauth_providers << :idcat_mobil
5
+ if Rails.application.secrets.dig(:omniauth, :idcat_mobil).present?
6
+ Rails.application.config.middleware.use OmniAuth::Builder do
7
+ provider(
8
+ :idcat_mobil,
9
+ setup: lambda { |env|
10
+ request = Rack::Request.new(env)
11
+ organization = Decidim::Organization.find_by(host: request.host)
12
+ provider_config = organization.enabled_omniauth_providers[:idcat_mobil]
13
+ env["omniauth.strategy"].options[:client_id] = provider_config[:client_id] || ENV["IDCAT_MOBIL_CLIENT_ID"]
14
+ env["omniauth.strategy"].options[:client_secret] = provider_config[:client_secret] || ENV["IDCAT_MOBIL_CLIENT_SECRET"]
15
+ env["omniauth.strategy"].options[:site] = provider_config[:site_url] || ENV["IDCAT_MOBIL_SITE_URL"]
16
+ },
17
+ scope: :autenticacio_usuari
18
+ )
19
+ end
20
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # # frozen_string_literal: true
2
4
 
3
5
  # module Decidim
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # # frozen_string_literal: true
2
4
 
3
5
  # module Decidim
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # # frozen_string_literal: true
2
4
 
3
5
  # require_dependency "decidim/components/namer"
@@ -16,17 +16,17 @@ module Decidim
16
16
  # root to: "idcat_mobil#index"
17
17
  end
18
18
 
19
- #
20
- # Force `Decidim::CurrentOrganization` to be executed before `Warden::Manager` to avoid path generation problems.
21
- # NOTE: Remove this initializer when in Decidim 0.16.0 where it has been fixed.
22
- #
23
- initializer "decidim.middleware" do |app|
24
- # as `app.config.middleware` is just a proxy made available for configuration purposes
25
- # and acts as a command recorder that executes deletes always at the end
26
- # we can not remove and re-insert, but only duplicate `Decidim::CurrentOrganization`.
27
- # app.config.middleware.delete Decidim::CurrentOrganization
28
- app.config.middleware.insert_before Warden::Manager, Decidim::CurrentOrganization
29
- end
19
+ # #
20
+ # # Force `Decidim::CurrentOrganization` to be executed before `Warden::Manager` to avoid path generation problems.
21
+ # # NOTE: Remove this initializer when in Decidim 0.16.0 where it has been fixed.
22
+ # #
23
+ # initializer "decidim.middleware" do |app|
24
+ # # as `app.config.middleware` is just a proxy made available for configuration purposes
25
+ # # and acts as a command recorder that executes deletes always at the end
26
+ # # we can not remove and re-insert, but only duplicate `Decidim::CurrentOrganization`.
27
+ # # app.config.middleware.delete Decidim::CurrentOrganization
28
+ # app.config.middleware.insert_before Warden::Manager, Decidim::CurrentOrganization
29
+ # end
30
30
 
31
31
  # initializer "decidim_idcat_mobil.assets" do |app|
32
32
  # app.config.assets.precompile += %w[decidim_idcat_mobil_manifest.js decidim_idcat_mobil_manifest.css]
@@ -4,7 +4,11 @@ module Decidim
4
4
  module IdcatMobil
5
5
  def self.version
6
6
  # See CHANGELOG.md to see what changed
7
- "0.0.4"
7
+ "0.1.0"
8
+ end
9
+
10
+ def self.decidim_version
11
+ "0.24.0"
8
12
  end
9
13
  end
10
14
  end
metadata CHANGED
@@ -1,71 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-idcat_mobil
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oliver Valls
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-29 00:00:00.000000000 Z
11
+ date: 2022-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: omniauth-idcat_mobil
14
+ name: decidim
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.1.1
19
+ version: 0.24.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.1.1
26
+ version: 0.24.0
27
27
  - !ruby/object:Gem::Dependency
28
- name: decidim
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.13.1
33
+ version: 0.24.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.13.1
40
+ version: 0.24.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: decidim-core
42
+ name: omniauth-idcat_mobil
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.13.1
47
+ version: 0.3.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.13.1
54
+ version: 0.3.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: decidim-dev
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: 0.13.1
61
+ version: 0.24.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: 0.13.1
68
+ version: 0.24.0
69
69
  description: User registration, login and verification though VÀLid's IdCat mòbil..
70
70
  email:
71
71
  - oliver.vh@coditramuntana.com
@@ -113,15 +113,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
113
113
  requirements:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
- version: 2.3.1
116
+ version: 2.7.2
117
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
118
  requirements:
119
119
  - - ">="
120
120
  - !ruby/object:Gem::Version
121
121
  version: '0'
122
122
  requirements: []
123
- rubyforge_project:
124
- rubygems_version: 2.7.6
123
+ rubygems_version: 3.1.4
125
124
  signing_key:
126
125
  specification_version: 4
127
126
  summary: A decidim idcat_mobil module