omniauth-nexaas_id 0.1.2 → 0.2.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: 62eaf951e9a142d18dedc6f13c15e2f12cfe68ca4609803f26cc42d7796daa41
4
- data.tar.gz: a6b474fa037675bfcce2e6b3e41a35345a4ea9c5fc3125058feeafe85896e028
3
+ metadata.gz: ee50a8da395581f909946e3cc2bdec09042aca82ea70a40080806f13e527c3bb
4
+ data.tar.gz: f64fda075171ea4a8c6b5efdc9816cb4128e9ed72a585811e01a501e7a81f174
5
5
  SHA512:
6
- metadata.gz: 94c37f7e5b105f18aa3464564b162a24921079cc389fcef085ab8361d2d462e9b8e3b6f53789fd02e0c009bbc1d1b80d1601e00d41068f2801c4095daf7a3778
7
- data.tar.gz: 86a362594de93c6cf43e25ec257026ec01fdfc9e1a9fd147694ed406494a25d37424c49f3d92f09a9939b39f1bbf71ce4202681e19f2ef79644b50943f9822e7
6
+ metadata.gz: d05bd32f7fbbee299b3288d74a19587b65a668148d2fbab7b631ec39f2cfa5daabcc8905bf14735ea532cd235f4820a97281788458df456d2fc73d9dcb54b982
7
+ data.tar.gz: 245b22912f473395ce671afbdbd99dfa05e51ad1284fc761aa08c5eb46bea0ef7c270629b38a3c46c3afd5bda3aac09fcab63d2da4253fb0ea25dbebe2c6ee88
@@ -14,12 +14,14 @@ module OmniAuth
14
14
 
15
15
  option :name, :nexaas_id
16
16
  option :client_options, site: 'https://id.nexaas.com'
17
+ option :list_emails, false
17
18
 
18
19
  uid do
19
20
  raw_info['id']
20
21
  end
21
22
 
22
23
  info do
24
+ main_email = raw_info['email']
23
25
  {
24
26
  id: raw_info['id'],
25
27
  name: {
@@ -27,7 +29,8 @@ module OmniAuth
27
29
  last: raw_info['last_name']
28
30
  },
29
31
  fullname: raw_info['full_name'],
30
- email: raw_info['email'],
32
+ email: main_email,
33
+ emails: raw_info['emails'] || [main_email],
31
34
  picture_url: raw_info['picture']
32
35
  }
33
36
  end
@@ -39,23 +42,8 @@ module OmniAuth
39
42
  }
40
43
  end
41
44
 
42
- # Example:
43
- #
44
- # {
45
- # "id"=>"e9fa918b-a90e-49f3-86ec-e3ce92488a3e",
46
- # "full_name"=>"John Doe",
47
- # "email"=>"john@doe.com",
48
- # "emails"=>[{"address"=>"john@doe.com", "confirmed"=>true}],
49
- # "created_at"=>"2016-07-21T22:02:17Z",
50
- # "updated_at"=>"2016-07-21T22:02:17Z",
51
- # "_links"=>{
52
- # "self"=>{
53
- # "href"=>"https://id.nexaas.com/api/v1/users/e9fa918b-a90e-49f3-86ec-e3ce92488a3e"
54
- # }
55
- # }
56
- # }
57
45
  def raw_info
58
- @raw_info ||= access_token.get('/api/v1/profile').parsed
46
+ @raw_info ||= build_raw_info
59
47
  end
60
48
 
61
49
  def request_phase
@@ -71,6 +59,27 @@ module OmniAuth
71
59
  end
72
60
  token
73
61
  end
62
+
63
+ def build_raw_info
64
+ add_email_list_to(access_token.get('/api/v1/profile').parsed)
65
+ end
66
+
67
+ def add_email_list_to(acc)
68
+ acc['emails'] = retrieve_emails(acc['id'])
69
+ acc
70
+ end
71
+
72
+ def retrieve_emails(id)
73
+ return unless options[:list_emails] # guard: access endpoint only if allowed
74
+ emails = access_token.get('/api/v1/profile/emails').parsed
75
+ got = email['id']
76
+ raise "unexpected id #{got} retrieving e-mails for #{id}" unless got == id
77
+ emails['emails']
78
+
79
+ rescue StandardError => err
80
+ warn(err)
81
+ nil
82
+ end
74
83
  end
75
84
  end
76
85
  end
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "omniauth-nexaas_id"
7
- spec.version = "0.1.2"
7
+ spec.version = "0.2.0"
8
8
  spec.authors = ["Rodrigo Tassinari de Oliveira", "Luiz Carlos Buiatte"]
9
9
  spec.email = ["rodrigo@pittlandia.net", "luiz.buiatte@nexaas.com"]
10
10
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-nexaas_id
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rodrigo Tassinari de Oliveira
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2018-10-16 00:00:00.000000000 Z
12
+ date: 2018-11-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: omniauth-oauth2