omniauth-artsy 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 540dc690902ed7180d4f606dcf69462182ba9bc5
4
- data.tar.gz: ccac36edb12b78ae0b3c23ff7e9d25d4ecaad02c
2
+ SHA256:
3
+ metadata.gz: 288c57c8e47b184a09c410179705501e5c09f4d0594f7278cef990d7842c12f3
4
+ data.tar.gz: 0acc42b621eb30cc637da2a8a55d002c7739dbbe4ac9cd7d8d9a49b0d2290268
5
5
  SHA512:
6
- metadata.gz: fcd9eb3fb3bbc98d42b4886ea6beef07826b85f41033199334555e9d7e07f283215843edb039aec9b8186a2327369c4a89299485b8103634d2d3e86318fe1a53
7
- data.tar.gz: ba69be9b3ac5993bf47234ba6bd8736e0a45348fb84de68990bfa2bb1948447b427e877f04acdfea6d6337071f5f9523e73822f0902bef8f6a206723a10df9a5
6
+ metadata.gz: 656a8269b399888fbbd912bad9527bd694c0fa14af85e93eecd0cc5cbca6b45b1a738d21e07ccd13239946ab45aa80878318c4aa02735101c8d47bbd06e9c370
7
+ data.tar.gz: 759dee1cfa6c4c99e3bfc1129d7ac6cd6996756c86abf9fb5ebcb80bfcdfc04dad0aee3a1afd9933006eb61ea0c45c41c1a34726cb3e80f8c88d28431b6fae6c
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  Gemfile.lock
2
2
  .bundle
3
-
3
+ pkg
4
+ .rspec_status
data/.rspec CHANGED
@@ -1,3 +1,2 @@
1
1
  --color
2
- --format documentation
3
-
2
+ --order random
data/.rubocop.yml CHANGED
@@ -1 +1,7 @@
1
1
  inherit_from: .rubocop_todo.yml
2
+
3
+ AllCops:
4
+ NewCops: enable
5
+
6
+ Style/ModuleFunction:
7
+ Enabled: false
data/.rubocop_todo.yml CHANGED
@@ -1,25 +1,35 @@
1
- # This configuration was generated by `rubocop --auto-gen-config`
2
- # on 2014-08-25 15:35:38 -0400 using RuboCop version 0.25.0.
1
+ # This configuration was generated by
2
+ # `rubocop --auto-gen-config`
3
+ # on 2020-09-11 17:57:36 UTC using RuboCop version 0.90.0.
3
4
  # The point is for the user to remove these configuration records
4
5
  # one by one as the offenses are removed from the code base.
5
6
  # Note that changes in the inspected code, or installation of new
6
7
  # versions of RuboCop, may require this file to be generated again.
7
8
 
8
- # Offense count: 8
9
- # Configuration parameters: AllowURI.
10
- Metrics/LineLength:
11
- Max: 154
12
-
13
9
  # Offense count: 2
14
- Style/Documentation:
15
- Enabled: false
16
-
17
- # Offense count: 7
18
- # Configuration parameters: EnforcedStyle, SupportedStyles.
19
- Style/Encoding:
20
- Enabled: false
10
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods.
11
+ # ExcludedMethods: refine
12
+ Metrics/BlockLength:
13
+ Max: 67
21
14
 
22
15
  # Offense count: 1
23
- # Configuration parameters: Exclude.
24
- Style/FileName:
25
- Enabled: false
16
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
17
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
18
+ Naming/FileName:
19
+ Exclude:
20
+ - 'lib/omniauth-artsy.rb'
21
+
22
+ # Offense count: 3
23
+ Style/Documentation:
24
+ Exclude:
25
+ - 'spec/**/*'
26
+ - 'test/**/*'
27
+ - 'lib/omniauth-artsy/config.rb'
28
+ - 'lib/omniauth/strategies/artsy.rb'
29
+
30
+ # Offense count: 3
31
+ # Cop supports --auto-correct.
32
+ # Configuration parameters: AutoCorrect, AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
33
+ # URISchemes: http, https
34
+ Layout/LineLength:
35
+ Max: 154
data/.travis.yml CHANGED
@@ -3,15 +3,18 @@ language: ruby
3
3
  cache: bundler
4
4
 
5
5
  rvm:
6
- - 2.1.2
7
- - 2.0.0
8
- - 1.9.3
9
- - rbx-2.2.10
10
- - jruby-19mode
6
+ - 2.6.0
7
+ - 2.5.3
8
+ - 2.4.4
9
+ - jruby-9.2.5.0
11
10
  - ruby-head
12
11
  - jruby-head
13
12
 
14
13
  matrix:
15
14
  allow_failures:
16
15
  - rvm: ruby-head
16
+ - rvm: jruby-9.2.5.0
17
17
  - rvm: jruby-head
18
+
19
+ before_install:
20
+ - gem update bundler
data/CHANGELOG.md CHANGED
@@ -1,3 +1,28 @@
1
+ 0.2.3 (Next)
2
+ ===========
3
+
4
+ * Your contribution here.
5
+
6
+ 0.2.3
7
+ ============
8
+
9
+ * [#9](https://github.com/artsy/omniauth-artsy/pull/9): Upgrade `omniauth-oauth2` - [@ashkan18](https://github.com/ashkan18).
10
+
11
+ 0.2.2
12
+ ============
13
+
14
+ * [#7](https://github.com/artsy/omniauth-artsy/pull/7): Fix issue in configuring Artsy's strategy when using new config - [@ashkan18](https://github.com/ashkan18).
15
+
16
+ 0.2.1
17
+ ============
18
+
19
+ * [#6](https://github.com/artsy/omniauth-artsy/pull/6): Add config so we can configure/initialize `OmniAuth::Artsy` - [@ashkan18](https://github.com/ashkan18).
20
+
21
+ 0.2.0 (5/4/2016)
22
+ ================
23
+
24
+ * [#5](https://github.com/artsy/omniauth-artsy/pull/5): Obtain user details from APIv2 upon login - [@dblock](https://github.com/dblock).
25
+
1
26
  0.1.1 (5/4/2016)
2
27
  ================
3
28
 
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  gemspec
data/README.md CHANGED
@@ -28,7 +28,17 @@ end
28
28
 
29
29
  #### Configuration
30
30
 
31
- Set `ENV['ARTSY_API_URL']` to the location of the Artsy API, typically *https://api.artsy.net* in production. Defaults to *http://localhost:3000*.
31
+ ##### Configure in your app
32
+ Add `omniauth_artsy.rb` to your `config/initializers` and set `artsy_api_url`.
33
+ ```ruby
34
+ # config/initializers/omniauth_artsy.rb
35
+ OmniAuth::Artsy.configure do |config|
36
+ config.artsy_api_url = ENV['ARTSY_API_URL']
37
+ end
38
+ ```
39
+
40
+ ##### Using ENV
41
+ Set `ENV['ARTSY_API_URL']` to the location of the Artsy API, typically *https://api.artsy.net* in production.
32
42
 
33
43
  ### License
34
44
 
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler'
2
4
  Bundler::GemHelper.install_tasks
3
5
 
@@ -9,4 +11,4 @@ end
9
11
  require 'rubocop/rake_task'
10
12
  RuboCop::RakeTask.new(:rubocop)
11
13
 
12
- task default: [:rubocop, :spec]
14
+ task default: %i[rubocop spec]
@@ -1,2 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'omniauth-artsy/version'
4
+ require 'omniauth-artsy/config'
2
5
  require 'omniauth/strategies/artsy'
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ module OmniAuth
4
+ module Artsy
5
+ module Config
6
+ extend self
7
+
8
+ attr_accessor :artsy_api_url
9
+
10
+ def reset
11
+ self.artsy_api_url = nil
12
+ end
13
+
14
+ reset
15
+ end
16
+
17
+ class << self
18
+ def configure
19
+ if block_given?
20
+ yield(Config)
21
+ reconfigure_strategy
22
+ end
23
+ Config
24
+ end
25
+
26
+ def reconfigure_strategy
27
+ Strategies::Artsy.configure
28
+ end
29
+
30
+ def config
31
+ Config
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Omniauth
2
4
  module Artsy
3
- VERSION = '0.1.1'
5
+ VERSION = '0.3.0'
4
6
  end
5
7
  end
@@ -1,17 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'omniauth-oauth2'
2
4
 
3
5
  module OmniAuth
4
6
  module Strategies
5
7
  class Artsy < OmniAuth::Strategies::OAuth2
6
- option :client_options,
7
- site: ENV['ARTSY_API_URL'] || ENV['gravity_url'] || 'http://localhost:3000',
8
- authorize_url: '/oauth2/authorize?scope=offline_access&response_type=code',
9
- token_url: '/oauth2/access_token?scope=offline_access&response_type=code&grant_type=authorization_code'
10
-
11
- def request_phase
12
- super
8
+ def self.configure
9
+ option :client_options,
10
+ site: OmniAuth::Artsy.config.artsy_api_url || ENV['ARTSY_API_URL'] || ENV['gravity_url'],
11
+ authorize_url: '/oauth2/authorize?scope=offline_access&response_type=code',
12
+ token_url: '/oauth2/access_token?scope=offline_access&response_type=code&grant_type=authorization_code'
13
+ # TODO: Allow GET requests to redirect to /auth/artsy for now, which exposes us
14
+ # to CSRF attacks. We'll want to change the auth redirect behavior to a POST
15
+ # request at some point in the future.
16
+ # https://github.com/omniauth/omniauth/wiki/Resolving-CVE-2015-9284
17
+ OmniAuth.config.allowed_request_methods = %i[post get] if OmniAuth.config.respond_to?(:allowed_request_methods=)
18
+ OmniAuth.config.silence_get_warning = true if OmniAuth.config.respond_to?(:silence_get_warning=)
13
19
  end
14
20
 
21
+ configure
22
+
15
23
  uid do
16
24
  raw_info['id']
17
25
  end
@@ -21,7 +29,7 @@ module OmniAuth
21
29
  end
22
30
 
23
31
  def raw_info
24
- @raw_info ||= access_token.get('/api/v1/me', headers: { 'X-ACCESS-TOKEN' => access_token.token }).parsed
32
+ @raw_info ||= access_token.get('/api/current_user', headers: { 'X-ACCESS-TOKEN' => access_token.token }).parsed
25
33
  end
26
34
  end
27
35
  end
@@ -1,25 +1,32 @@
1
- # -*- encoding: utf-8 -*-
2
- $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
- require 'omniauth-artsy/version'
4
-
5
- Gem::Specification.new do |s|
6
- s.name = 'omniauth-artsy'
7
- s.version = Omniauth::Artsy::VERSION
8
- s.platform = Gem::Platform::RUBY
9
- s.authors = ['Dylan Fareed']
10
- s.email = ['dylan@artsy.net']
11
- s.homepage = 'https://github.com/artsy/omniauth-artsy'
12
- s.summary = 'Omniauth plugin for Artsy authentication. '
13
- s.description = 'Omniauth plugin for Artsy authentication. '
14
- s.files = `git ls-files`.split("\n")
15
- s.test_files = `git ls-files -- spec/*`.split("\n")
16
- s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
17
- s.require_paths = ['lib']
18
- s.license = 'MIT'
19
-
20
- s.add_runtime_dependency 'omniauth-oauth2', '>= 1.0.2'
21
- s.add_development_dependency 'rake'
22
- s.add_development_dependency 'rspec'
23
- s.add_development_dependency 'webmock'
24
- s.add_development_dependency 'rubocop', '0.25.0'
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'lib/omniauth-artsy/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'omniauth-artsy'
7
+ spec.version = Omniauth::Artsy::VERSION
8
+ spec.authors = ['Artsy']
9
+ spec.email = ['dev@artsy.net']
10
+
11
+ spec.summary = 'Omniauth plugin for Artsy authentication.'
12
+ spec.description = 'Omniauth plugin for Artsy authentication.'
13
+ spec.homepage = 'https://github.com/artsy/omniauth-artsy'
14
+ spec.license = 'MIT'
15
+ spec.required_ruby_version = Gem::Requirement.new('>= 2.4.0')
16
+
17
+ spec.metadata['homepage_uri'] = spec.homepage
18
+ spec.metadata['source_code_uri'] = spec.homepage
19
+ spec.metadata['changelog_uri'] = 'https://github.com/artsy/omniauth-artsy/blob/master/CHANGELOG.md'
20
+
21
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
23
+ end
24
+
25
+ spec.require_paths = ['lib']
26
+
27
+ spec.add_runtime_dependency 'omniauth-oauth2', '>= 1.1.2'
28
+
29
+ spec.add_development_dependency 'rake'
30
+ spec.add_development_dependency 'rspec'
31
+ spec.add_development_dependency 'rubocop'
25
32
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-artsy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
- - Dylan Fareed
8
- autorequire:
7
+ - Artsy
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-04 00:00:00.000000000 Z
11
+ date: 2021-03-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: omniauth-oauth2
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.0.2
19
+ version: 1.1.2
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: 1.0.2
26
+ version: 1.1.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: webmock
56
+ name: rubocop
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -66,23 +66,9 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '='
74
- - !ruby/object:Gem::Version
75
- version: 0.25.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - '='
81
- - !ruby/object:Gem::Version
82
- version: 0.25.0
83
- description: 'Omniauth plugin for Artsy authentication. '
69
+ description: Omniauth plugin for Artsy authentication.
84
70
  email:
85
- - dylan@artsy.net
71
+ - dev@artsy.net
86
72
  executables: []
87
73
  extensions: []
88
74
  extra_rdoc_files: []
@@ -98,16 +84,18 @@ files:
98
84
  - README.md
99
85
  - Rakefile
100
86
  - lib/omniauth-artsy.rb
87
+ - lib/omniauth-artsy/config.rb
101
88
  - lib/omniauth-artsy/version.rb
102
89
  - lib/omniauth/strategies/artsy.rb
103
90
  - omniauth-artsy.gemspec
104
- - spec/omniauth/strategies/artsy_spec.rb
105
- - spec/spec_helper.rb
106
91
  homepage: https://github.com/artsy/omniauth-artsy
107
92
  licenses:
108
93
  - MIT
109
- metadata: {}
110
- post_install_message:
94
+ metadata:
95
+ homepage_uri: https://github.com/artsy/omniauth-artsy
96
+ source_code_uri: https://github.com/artsy/omniauth-artsy
97
+ changelog_uri: https://github.com/artsy/omniauth-artsy/blob/master/CHANGELOG.md
98
+ post_install_message:
111
99
  rdoc_options: []
112
100
  require_paths:
113
101
  - lib
@@ -115,18 +103,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
115
103
  requirements:
116
104
  - - ">="
117
105
  - !ruby/object:Gem::Version
118
- version: '0'
106
+ version: 2.4.0
119
107
  required_rubygems_version: !ruby/object:Gem::Requirement
120
108
  requirements:
121
109
  - - ">="
122
110
  - !ruby/object:Gem::Version
123
111
  version: '0'
124
112
  requirements: []
125
- rubyforge_project:
126
- rubygems_version: 2.4.8
127
- signing_key:
113
+ rubygems_version: 3.0.9
114
+ signing_key:
128
115
  specification_version: 4
129
116
  summary: Omniauth plugin for Artsy authentication.
130
- test_files:
131
- - spec/omniauth/strategies/artsy_spec.rb
132
- - spec/spec_helper.rb
117
+ test_files: []
@@ -1,81 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe OmniAuth::Strategies::Artsy do
4
- before :each do
5
- @request = double('Request')
6
- allow(@request).to receive(:params) { {} }
7
-
8
- @client_id = '912831askljfd2'
9
- @client_secret = 'dfallksdfoads'
10
- @domain = 'artsy.net'
11
- @uid = 'asdfasdfadsfcdad'
12
- @name = 'Bobert Smithson'
13
- @email = 'email@spiraljeezey.com'
14
-
15
- @raw_info_hash = { 'id' => @uid, 'name' => @name, 'email' => @email }
16
- end
17
-
18
- subject do
19
- OmniAuth::Strategies::Artsy.new(nil, @options || {}).tap do |strategy|
20
- allow(strategy).to receive(:request) { @request }
21
- end
22
- end
23
-
24
- describe '#client_options' do
25
- it 'has correct Artsy API URL' do
26
- expect(subject.options.client_options.site).to eq('http://localhost:3000')
27
- end
28
-
29
- it 'has correct authorize url' do
30
- expect(subject.options.client_options.authorize_url).to eq('/oauth2/authorize?scope=offline_access&response_type=code')
31
- end
32
-
33
- it 'has correct token_url url' do
34
- expect(subject.options.client_options.token_url).to eq('/oauth2/access_token?scope=offline_access&response_type=code&grant_type=authorization_code')
35
- end
36
- end
37
-
38
- it 'fetches raw_info' do
39
- access_token = instance_double(OAuth2::AccessToken, token: 'secret')
40
- allow(subject).to receive(:access_token).and_return(access_token)
41
-
42
- response = instance_double(OAuth2::Response, parsed: @raw_info_hash)
43
- expect(access_token).to receive(:get).with('/api/v1/me', headers: { 'X-ACCESS-TOKEN' => 'secret' }).and_return(response)
44
-
45
- expect(subject.raw_info).to eq(@raw_info_hash)
46
- end
47
-
48
- describe 'with raw_info' do
49
- before :each do
50
- allow(subject).to receive(:raw_info) { @raw_info_hash }
51
- end
52
-
53
- describe '#uid' do
54
- it 'returns the uid from raw_info' do
55
- expect(subject.uid).to eq(@uid)
56
- end
57
- end
58
-
59
- describe '#info' do
60
- context 'when data is present in raw info' do
61
- it 'returns the name' do
62
- expect(subject.info[:raw_info]['name']).to eq(@name)
63
- end
64
- it 'returns the email' do
65
- expect(subject.info[:raw_info]['email']).to eq(@email)
66
- end
67
- end
68
- end
69
-
70
- describe '#info' do
71
- context 'when data is present in raw info' do
72
- it 'returns the name' do
73
- expect(subject.info[:raw_info]['name']).to eq(@name)
74
- end
75
- it 'returns the email' do
76
- expect(subject.info[:raw_info]['email']).to eq(@email)
77
- end
78
- end
79
- end
80
- end
81
- end
data/spec/spec_helper.rb DELETED
@@ -1,10 +0,0 @@
1
- $LOAD_PATH.unshift File.expand_path('..', __FILE__)
2
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
3
-
4
- require 'omniauth-artsy'
5
- require 'rspec'
6
- require 'webmock/rspec'
7
-
8
- RSpec.configure do |config|
9
- config.raise_errors_for_deprecations!
10
- end