omniauth-orcid 1.2 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODMzNWYwZWQyZTQ0MmZmZTk3MGRlNzhjNzU3ZTM3NDA4NzI0ODZjMw==
4
+ OTUxMmYyMzNkMWQ5MDY2NWY4MzlkZWY3Yjk2ZDljNDA3ZmU5YTQzZA==
5
5
  data.tar.gz: !binary |-
6
- OGQzOTVkYmY4OWFhZjllY2VmZGY2MWY3NzFlMjMwN2RkOGI2NDQwOA==
6
+ ODFjZjAxOTA3MjFlMWY5ZDVkOGE2Y2MxMmNhOGI2NDg3YzZmN2VkMg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjQzZjkyZmVlNmQzZGRjODcwYjI3MWE1MjhhZmJmMzBmZGMyMGZhOWMwMjZi
10
- YjRmYzM1MzViMThmODQyNGQ0MjRmYThlYzE4ZjJmNTY2MTVhMjFjOTcwYTUy
11
- ZWFlZjYwMzZmMmZiY2IzNjY2Mjk4ZjYzNzUzZGVjYmY0ZmVlY2E=
9
+ MDE4YWFmMWVjODJiNTUwMDYzZGJjNDRjZDY5MmQ0NDU3OGZmM2ExYjYxMWEx
10
+ MTU5MjA1ZWQ5MmZhZTViZjQyYTE0NGU4MzAyYjUyODAxYTI1NzhlNGRiZjZk
11
+ OTYzNGYwNzAxNDczYzYwYzhhYzM1MWUxZWYxYTcyMTVlOWFhYTg=
12
12
  data.tar.gz: !binary |-
13
- YjdiN2E0MWJhMzRmYTM2MzFmMzBjOGI4YzcyNjJiNmRiZWU5YzZjYmJiNGQw
14
- Y2M4MzVhNTE0OTRlMzM5YzdmYTJhMzc2Mjg1OGNjYTM3NWJiYTk5MmQ0ZGNi
15
- ZjE4ZmY3MDkxYThkY2RiZTM5ZTg1MGNkNGIyZjJlZjM4ZTAxNGE=
13
+ MWFhYjZhNTQxNDNhMDcwYTE1OWQ4Zjc5OWJjZGZmZjdkZDdmNDkyNTE3YTNm
14
+ MjEzMjMxZDlhYjM5NWMzZDU1NGFhZDY4NWRkZDQxZTRmOWJhYzllZDA5ZjUw
15
+ NWQ0MWNmYzg0YTY3MjMyMzRkYmM2ZjlhNDNkNThkNzIxOGIzMTI=
data/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/omniauth-orcid.svg)](https://badge.fury.io/rb/omniauth-orcid)
4
4
  [![Build Status](https://travis-ci.org/datacite/omniauth-orcid.svg?branch=master)](https://travis-ci.org/datacite/omniauth-orcid)
5
+ [![Test Coverage](https://codeclimate.com/github/datacite/omniauth-orcid/badges/coverage.svg)](https://codeclimate.com/github/datacite/omniauth-orcid/coverage)
6
+ [![Code Climate](https://codeclimate.com/github/datacite/omniauth-orcid/badges/gpa.svg)](https://codeclimate.com/github/datacite/omniauth-orcid)
5
7
  [![DOI](https://zenodo.org/badge/15088/datacite/omniauth-orcid.svg)](https://zenodo.org/badge/latestdoi/15088/datacite/omniauth-orcid)
6
8
 
7
9
  ORCID OAuth 2.0 Strategy for the [OmniAuth Ruby authentication framework](http://www.omniauth.org).
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module Orcid
3
- VERSION = "1.2"
3
+ VERSION = "1.2.1"
4
4
  end
5
5
  end
@@ -20,7 +20,8 @@ module OmniAuth
20
20
  :given_names,
21
21
  :family_names,
22
22
  :email,
23
- :orcid]
23
+ :orcid,
24
+ :scope]
24
25
 
25
26
  args [:client_id, :client_secret]
26
27
 
@@ -31,20 +32,23 @@ module OmniAuth
31
32
  @options.client_options.api_base_url = api_base_url
32
33
  @options.client_options.authorize_url = authorize_url
33
34
  @options.client_options.token_url = token_url
34
- @options.client_options.scope = scope
35
35
  end
36
36
 
37
37
  # available options at https://members.orcid.org/api/get-oauthauthorize
38
38
  def authorize_params
39
39
  super.tap do |params|
40
- options[:authorize_options].each do |k|
41
- params[k] = request.params[k.to_s] unless [nil, ''].include?(request.params[k.to_s])
40
+ %w[scope redirect_uri show_login lang given_names family_names email orcid].each do |v|
41
+ if request.params[v]
42
+ params[v.to_sym] = request.params[v]
43
+ end
42
44
  end
43
45
 
44
46
  # show login form and not registration form by default
45
47
  params[:show_login] = 'true' if params[:show_login].nil?
46
48
 
47
49
  session['omniauth.state'] = params[:state] if params['state']
50
+
51
+ params[:scope] ||= scope
48
52
  end
49
53
  end
50
54
 
@@ -63,10 +67,10 @@ module OmniAuth
63
67
 
64
68
  def site
65
69
  case namespace
66
- when 'sandbox' then 'http://api.sandbox.orcid.org'
67
- when 'production' then 'http://api.orcid.org'
68
- when 'public_sandbox' then 'http://pub.sandbox.orcid.org'
69
- when 'public' then 'http://pub.orcid.org'
70
+ when 'sandbox' then 'https://api.sandbox.orcid.org'
71
+ when 'production' then 'https://api.orcid.org'
72
+ when 'public_sandbox' then 'https://pub.sandbox.orcid.org'
73
+ when 'public' then 'https://pub.orcid.org'
70
74
  end
71
75
  end
72
76
 
@@ -87,12 +91,7 @@ module OmniAuth
87
91
  end
88
92
 
89
93
  def token_url
90
- case namespace
91
- when 'sandbox' then 'https://api.sandbox.orcid.org/oauth/token'
92
- when 'production' then 'https://api.orcid.org/oauth/token'
93
- when 'public_sandbox' then 'https://pub.sandbox.orcid.org/oauth/token'
94
- when 'public' then 'https://pub.orcid.org/oauth/token'
95
- end
94
+ site + '/oauth/token'
96
95
  end
97
96
 
98
97
  def scope
@@ -24,4 +24,5 @@ Gem::Specification.new do |s|
24
24
  s.add_development_dependency 'rspec', '~> 3.4'
25
25
  s.add_development_dependency 'rack-test', '~> 0.6.3'
26
26
  s.add_development_dependency 'webmock', '~> 1.22', '>= 1.22.3'
27
+ s.add_development_dependency 'codeclimate-test-reporter'
27
28
  end
@@ -31,11 +31,11 @@ describe OmniAuth::Strategies::ORCID do
31
31
 
32
32
  describe "default" do
33
33
  it 'should have correct site' do
34
- expect(subject.options.client_options.site).to eq('http://pub.orcid.org')
34
+ expect(subject.options.client_options.site).to eq('https://pub.orcid.org')
35
35
  end
36
36
 
37
37
  it 'should have correct scope' do
38
- expect(subject.options.client_options.scope).to eq('/authenticate')
38
+ expect(subject.authorize_params['scope']).to eq('/authenticate')
39
39
  end
40
40
 
41
41
  it 'should have correct token url' do
@@ -57,11 +57,11 @@ describe OmniAuth::Strategies::ORCID do
57
57
  end
58
58
 
59
59
  it 'should have correct site' do
60
- expect(subject.options.client_options.site).to eq("http://pub.sandbox.orcid.org")
60
+ expect(subject.options.client_options.site).to eq("https://pub.sandbox.orcid.org")
61
61
  end
62
62
 
63
63
  it 'should have correct scope' do
64
- expect(subject.options.client_options.scope).to eq("/authenticate")
64
+ expect(subject.authorize_params['scope']).to eq("/authenticate")
65
65
  end
66
66
 
67
67
  it 'should have correct token url' do
@@ -83,11 +83,11 @@ describe OmniAuth::Strategies::ORCID do
83
83
  end
84
84
 
85
85
  it 'should have correct site' do
86
- expect(subject.options.client_options.site).to eq('http://api.orcid.org')
86
+ expect(subject.options.client_options.site).to eq('https://api.orcid.org')
87
87
  end
88
88
 
89
89
  it 'should have correct scope' do
90
- expect(subject.options.client_options.scope).to eq('/read-limited /activities/update /orcid-bio/update')
90
+ expect(subject.authorize_params['scope']).to eq('/read-limited /activities/update /orcid-bio/update')
91
91
  end
92
92
 
93
93
  it 'should have correct token url' do
@@ -101,11 +101,11 @@ describe OmniAuth::Strategies::ORCID do
101
101
  end
102
102
 
103
103
  it 'should have correct site' do
104
- expect(subject.options.client_options.site).to eq("http://api.sandbox.orcid.org")
104
+ expect(subject.options.client_options.site).to eq("https://api.sandbox.orcid.org")
105
105
  end
106
106
 
107
107
  it 'should have correct scope' do
108
- expect(subject.options.client_options.scope).to eq('/read-limited /activities/update /orcid-bio/update')
108
+ expect(subject.authorize_params['scope']).to eq('/read-limited /activities/update /orcid-bio/update')
109
109
  end
110
110
 
111
111
  it 'should have correct token url' do
@@ -162,6 +162,18 @@ describe OmniAuth::Strategies::ORCID do
162
162
  expect(subject.authorize_params["email"]).to eq("josiah@brown.edu")
163
163
  end
164
164
  end
165
+
166
+ describe "scope" do
167
+ it 'should default to nil' do
168
+ @options = {}
169
+ expect(subject.authorize_params['scope']).to eq("/authenticate")
170
+ end
171
+
172
+ it 'should set the scope parameter if present' do
173
+ @options = { scope: '/read-limited' }
174
+ expect(subject.authorize_params['scope']).to eq("/read-limited")
175
+ end
176
+ end
165
177
  end
166
178
 
167
179
  describe 'extra' do
data/spec/spec_helper.rb CHANGED
@@ -1,6 +1,9 @@
1
1
  require 'bundler/setup'
2
2
  Bundler.setup
3
3
 
4
+ require "codeclimate-test-reporter"
5
+ CodeClimate::TestReporter.start
6
+
4
7
  require 'omniauth-orcid'
5
8
  require 'rspec'
6
9
  require 'rack/test'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-orcid
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.2'
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gudmundur A. Thorisson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-09-03 00:00:00.000000000 Z
12
+ date: 2016-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: omniauth-oauth2
@@ -87,6 +87,20 @@ dependencies:
87
87
  - - ! '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: 1.22.3
90
+ - !ruby/object:Gem::Dependency
91
+ name: codeclimate-test-reporter
92
+ requirement: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
90
104
  description: Enables third-party client apps to connect to the ORCID API and access/update
91
105
  protected profile data
92
106
  email: