omniauth-identity 2.0.0 → 3.0.4

Sign up to get free protection for your applications and to get access to all the features.
data/spec/spec_helper.rb CHANGED
@@ -1,14 +1,14 @@
1
- require 'rubygems'
2
- require 'bundler'
3
- Bundler.setup :default, :development, :test
1
+ # frozen_string_literal: true
4
2
 
5
- # Third party gems to help with testing
6
- require 'simplecov'
7
- SimpleCov.start
3
+ ruby_version = Gem::Version.new(RUBY_VERSION)
4
+ require 'simplecov' if ruby_version >= Gem::Version.new('2.7') && RUBY_ENGINE == 'ruby'
8
5
 
9
6
  require 'rack/test'
10
7
  require 'mongoid-rspec'
11
- require 'byebug'
8
+ require 'sqlite3'
9
+ require 'sequel'
10
+ require 'anonymous_active_record'
11
+ require 'byebug' if RUBY_ENGINE == 'ruby'
12
12
 
13
13
  # This gem
14
14
  require 'omniauth/identity'
@@ -16,5 +16,14 @@ require 'omniauth/identity'
16
16
  RSpec.configure do |config|
17
17
  config.include Rack::Test::Methods
18
18
  config.include Mongoid::Matchers, type: :model
19
- end
20
19
 
20
+ # Enable flags like --only-failures and --next-failure
21
+ config.example_status_persistence_file_path = '.rspec_status'
22
+
23
+ # Disable RSpec exposing methods globally on `Module` and `main`
24
+ config.disable_monkey_patching!
25
+
26
+ config.expect_with :rspec do |c|
27
+ c.syntax = :expect
28
+ end
29
+ end
metadata CHANGED
@@ -1,18 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-identity
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 3.0.4
5
5
  platform: ruby
6
6
  authors:
7
+ - Peter Boling
7
8
  - Andrew Roberts
8
9
  - Michael Bleigh
9
- autorequire:
10
- bindir: bin
10
+ autorequire:
11
+ bindir: exe
11
12
  cert_chain: []
12
- date: 2020-09-01 00:00:00.000000000 Z
13
+ date: 2021-02-14 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
- name: omniauth
16
+ name: bcrypt
16
17
  requirement: !ruby/object:Gem::Requirement
17
18
  requirements:
18
19
  - - ">="
@@ -26,7 +27,7 @@ dependencies:
26
27
  - !ruby/object:Gem::Version
27
28
  version: '0'
28
29
  - !ruby/object:Gem::Dependency
29
- name: bcrypt
30
+ name: omniauth
30
31
  requirement: !ruby/object:Gem::Requirement
31
32
  requirements:
32
33
  - - ">="
@@ -40,189 +41,150 @@ dependencies:
40
41
  - !ruby/object:Gem::Version
41
42
  version: '0'
42
43
  - !ruby/object:Gem::Dependency
43
- name: maruku
44
+ name: anonymous_active_record
44
45
  requirement: !ruby/object:Gem::Requirement
45
46
  requirements:
46
- - - ">="
47
- - !ruby/object:Gem::Version
48
- version: '0'
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
47
+ - - "~>"
54
48
  - !ruby/object:Gem::Version
55
- version: '0'
56
- - !ruby/object:Gem::Dependency
57
- name: simplecov
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
49
+ version: '1.0'
60
50
  - - ">="
61
51
  - !ruby/object:Gem::Version
62
- version: '0'
52
+ version: 1.0.8
63
53
  type: :development
64
54
  prerelease: false
65
55
  version_requirements: !ruby/object:Gem::Requirement
66
56
  requirements:
67
- - - ">="
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- - !ruby/object:Gem::Dependency
71
- name: rack-test
72
- requirement: !ruby/object:Gem::Requirement
73
- requirements:
74
- - - ">="
57
+ - - "~>"
75
58
  - !ruby/object:Gem::Version
76
- version: '0'
77
- type: :development
78
- prerelease: false
79
- version_requirements: !ruby/object:Gem::Requirement
80
- requirements:
59
+ version: '1.0'
81
60
  - - ">="
82
61
  - !ruby/object:Gem::Version
83
- version: '0'
62
+ version: 1.0.8
84
63
  - !ruby/object:Gem::Dependency
85
- name: rake
86
- requirement: !ruby/object:Gem::Requirement
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: '0'
91
- type: :development
92
- prerelease: false
93
- version_requirements: !ruby/object:Gem::Requirement
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- version: '0'
98
- - !ruby/object:Gem::Dependency
99
- name: rspec
64
+ name: mongoid
100
65
  requirement: !ruby/object:Gem::Requirement
101
66
  requirements:
102
67
  - - "~>"
103
68
  - !ruby/object:Gem::Version
104
- version: '3'
69
+ version: '7'
105
70
  type: :development
106
71
  prerelease: false
107
72
  version_requirements: !ruby/object:Gem::Requirement
108
73
  requirements:
109
74
  - - "~>"
110
75
  - !ruby/object:Gem::Version
111
- version: '3'
76
+ version: '7'
112
77
  - !ruby/object:Gem::Dependency
113
- name: activerecord
78
+ name: nobrainer
114
79
  requirement: !ruby/object:Gem::Requirement
115
80
  requirements:
116
- - - ">="
81
+ - - "~>"
117
82
  - !ruby/object:Gem::Version
118
83
  version: '0'
119
84
  type: :development
120
85
  prerelease: false
121
86
  version_requirements: !ruby/object:Gem::Requirement
122
87
  requirements:
123
- - - ">="
88
+ - - "~>"
124
89
  - !ruby/object:Gem::Version
125
90
  version: '0'
126
91
  - !ruby/object:Gem::Dependency
127
- name: mongoid
92
+ name: rack-test
128
93
  requirement: !ruby/object:Gem::Requirement
129
94
  requirements:
130
- - - ">="
95
+ - - "~>"
131
96
  - !ruby/object:Gem::Version
132
- version: '0'
97
+ version: '1'
133
98
  type: :development
134
99
  prerelease: false
135
100
  version_requirements: !ruby/object:Gem::Requirement
136
101
  requirements:
137
- - - ">="
102
+ - - "~>"
138
103
  - !ruby/object:Gem::Version
139
- version: '0'
104
+ version: '1'
140
105
  - !ruby/object:Gem::Dependency
141
- name: datamapper
106
+ name: rake
142
107
  requirement: !ruby/object:Gem::Requirement
143
108
  requirements:
144
- - - ">="
109
+ - - "~>"
145
110
  - !ruby/object:Gem::Version
146
- version: '0'
111
+ version: '13'
147
112
  type: :development
148
113
  prerelease: false
149
114
  version_requirements: !ruby/object:Gem::Requirement
150
115
  requirements:
151
- - - ">="
116
+ - - "~>"
152
117
  - !ruby/object:Gem::Version
153
- version: '0'
118
+ version: '13'
154
119
  - !ruby/object:Gem::Dependency
155
- name: bson_ext
120
+ name: rspec
156
121
  requirement: !ruby/object:Gem::Requirement
157
122
  requirements:
158
- - - ">="
123
+ - - "~>"
159
124
  - !ruby/object:Gem::Version
160
- version: '0'
125
+ version: '3'
161
126
  type: :development
162
127
  prerelease: false
163
128
  version_requirements: !ruby/object:Gem::Requirement
164
129
  requirements:
165
- - - ">="
130
+ - - "~>"
166
131
  - !ruby/object:Gem::Version
167
- version: '0'
132
+ version: '3'
168
133
  - !ruby/object:Gem::Dependency
169
- name: byebug
134
+ name: sequel
170
135
  requirement: !ruby/object:Gem::Requirement
171
136
  requirements:
172
- - - ">="
137
+ - - "~>"
173
138
  - !ruby/object:Gem::Version
174
- version: '0'
139
+ version: '5'
175
140
  type: :development
176
141
  prerelease: false
177
142
  version_requirements: !ruby/object:Gem::Requirement
178
143
  requirements:
179
- - - ">="
144
+ - - "~>"
180
145
  - !ruby/object:Gem::Version
181
- version: '0'
146
+ version: '5'
182
147
  - !ruby/object:Gem::Dependency
183
- name: couch_potato
148
+ name: sqlite3
184
149
  requirement: !ruby/object:Gem::Requirement
185
150
  requirements:
186
- - - ">="
151
+ - - "~>"
187
152
  - !ruby/object:Gem::Version
188
- version: '0'
153
+ version: '1.4'
189
154
  type: :development
190
155
  prerelease: false
191
156
  version_requirements: !ruby/object:Gem::Requirement
192
157
  requirements:
193
- - - ">="
158
+ - - "~>"
194
159
  - !ruby/object:Gem::Version
195
- version: '0'
160
+ version: '1.4'
196
161
  description: Internal authentication handlers for OmniAuth.
197
- email:
162
+ email:
198
163
  executables: []
199
164
  extensions: []
200
165
  extra_rdoc_files: []
201
166
  files:
202
- - ".gitignore"
203
- - ".rspec"
204
167
  - CHANGELOG.md
205
- - Gemfile
206
- - Guardfile
168
+ - CODE_OF_CONDUCT.md
207
169
  - LICENSE
208
- - README.markdown
209
- - Rakefile
170
+ - README.md
210
171
  - lib/omniauth-identity.rb
211
172
  - lib/omniauth-identity/version.rb
212
173
  - lib/omniauth/identity.rb
213
174
  - lib/omniauth/identity/model.rb
214
175
  - lib/omniauth/identity/models/active_record.rb
215
176
  - lib/omniauth/identity/models/couch_potato.rb
216
- - lib/omniauth/identity/models/data_mapper.rb
217
177
  - lib/omniauth/identity/models/mongoid.rb
178
+ - lib/omniauth/identity/models/no_brainer.rb
179
+ - lib/omniauth/identity/models/sequel.rb
218
180
  - lib/omniauth/identity/secure_password.rb
219
181
  - lib/omniauth/strategies/identity.rb
220
- - omniauth-identity.gemspec
221
182
  - spec/omniauth/identity/model_spec.rb
222
183
  - spec/omniauth/identity/models/active_record_spec.rb
223
184
  - spec/omniauth/identity/models/couch_potato_spec.rb
224
- - spec/omniauth/identity/models/data_mapper_spec.rb
225
185
  - spec/omniauth/identity/models/mongoid_spec.rb
186
+ - spec/omniauth/identity/models/no_brainer_spec.rb
187
+ - spec/omniauth/identity/models/sequel_spec.rb
226
188
  - spec/omniauth/identity/secure_password_spec.rb
227
189
  - spec/omniauth/strategies/identity_spec.rb
228
190
  - spec/spec_helper.rb
@@ -230,32 +192,33 @@ homepage: http://github.com/omniauth/omniauth-identity
230
192
  licenses:
231
193
  - MIT
232
194
  metadata: {}
233
- post_install_message:
234
- rdoc_options: []
195
+ post_install_message:
196
+ rdoc_options:
197
+ - "--charset=UTF-8"
235
198
  require_paths:
236
199
  - lib
237
200
  required_ruby_version: !ruby/object:Gem::Requirement
238
201
  requirements:
239
202
  - - ">="
240
203
  - !ruby/object:Gem::Version
241
- version: '0'
204
+ version: '2.4'
242
205
  required_rubygems_version: !ruby/object:Gem::Requirement
243
206
  requirements:
244
207
  - - ">="
245
208
  - !ruby/object:Gem::Version
246
209
  version: 1.3.6
247
210
  requirements: []
248
- rubyforge_project:
249
- rubygems_version: 2.7.10
250
- signing_key:
211
+ rubygems_version: 3.2.3
212
+ signing_key:
251
213
  specification_version: 4
252
214
  summary: Internal authentication handlers for OmniAuth.
253
215
  test_files:
254
216
  - spec/omniauth/identity/model_spec.rb
255
217
  - spec/omniauth/identity/models/active_record_spec.rb
256
218
  - spec/omniauth/identity/models/couch_potato_spec.rb
257
- - spec/omniauth/identity/models/data_mapper_spec.rb
258
219
  - spec/omniauth/identity/models/mongoid_spec.rb
220
+ - spec/omniauth/identity/models/no_brainer_spec.rb
221
+ - spec/omniauth/identity/models/sequel_spec.rb
259
222
  - spec/omniauth/identity/secure_password_spec.rb
260
223
  - spec/omniauth/strategies/identity_spec.rb
261
224
  - spec/spec_helper.rb
data/.gitignore DELETED
@@ -1,6 +0,0 @@
1
- /coverage
2
- /pkg
3
- /doc
4
- Gemfile.lock
5
- /.ruby-version
6
- /.ruby-gemset
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --require spec_helper
2
- --format=documentation
3
- --colour
data/Gemfile DELETED
@@ -1,13 +0,0 @@
1
- source "http://rubygems.org"
2
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
-
4
- gemspec
5
-
6
- group :development, :test do
7
- gem 'mongoid-rspec', github: 'mongoid/mongoid-rspec'
8
- gem 'guard'
9
- gem 'guard-rspec'
10
- gem 'guard-bundler'
11
- gem 'growl'
12
- gem 'rb-fsevent'
13
- end
data/Guardfile DELETED
@@ -1,10 +0,0 @@
1
- guard 'rspec', :version => 2 do
2
- watch(%r{^spec/.+_spec\.rb$})
3
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
4
- watch('spec/spec_helper.rb') { "spec" }
5
- end
6
-
7
- guard 'bundler' do
8
- watch('Gemfile')
9
- watch(/^.+\.gemspec/)
10
- end
data/README.markdown DELETED
@@ -1,204 +0,0 @@
1
- # OmniAuth Identity
2
-
3
- The OmniAuth Identity gem provides a way for applications to utilize a
4
- traditional login/password based authentication system without the need
5
- to give up the simple authentication flow provided by OmniAuth. Identity
6
- is designed on purpose to be as featureless as possible: it provides the
7
- basic construct for user management and then gets out of the way.
8
-
9
- ## Usage
10
-
11
- This can be a bit hard to understand the first time. Luckily, Ryan Bates made
12
- a [Railscast](http://railscasts.com/episodes/304-omniauth-identity) about it!
13
-
14
- You use `omniauth-identity` just like you would any other OmniAuth provider: as a
15
- Rack middleware. The basic setup for a email/password authentication would
16
- look something like this:
17
-
18
- ```ruby
19
- use OmniAuth::Builder do
20
- provider :identity, :fields => [:email]
21
- end
22
- ```
23
-
24
- Next, you need to create a model (called `Identity by default`) that will be
25
- able to persist the information provided by the user. Luckily for you, there
26
- are pre-built models for popular ORMs that make this dead simple.
27
-
28
- **Note:** OmniAuth Identity is different from many other user authentication
29
- systems in that it is *not* built to store authentication information in your primary
30
- `User` model. Instead, the `Identity` model should be **associated** with your
31
- `User` model giving you maximum flexibility to include other authentication
32
- strategies such as Facebook, Twitter, etc.
33
-
34
- ### ActiveRecord
35
-
36
- Just subclass `OmniAuth::Identity::Models::ActiveRecord` and provide fields
37
- in the database for all of the fields you are using.
38
-
39
- ```ruby
40
- class Identity < OmniAuth::Identity::Models::ActiveRecord
41
- # Add whatever you like!
42
- end
43
- ```
44
-
45
- ### Mongoid
46
-
47
- Include the `OmniAuth::Identity::Models::Mongoid` mixin and specify
48
- fields that you will need.
49
-
50
- ```ruby
51
- class Identity
52
- include Mongoid::Document
53
- include OmniAuth::Identity::Models::Mongoid
54
-
55
- field :email, type: String
56
- field :name, type: String
57
- field :password_digest, type: String
58
- end
59
- ```
60
-
61
- ### MongoMapper
62
-
63
- Unfortunately MongoMapper is **not supported** in `omniauth-identity` from >= v2.0 as a result of it
64
- not being maintained for several years.
65
-
66
- It wasn't possible to include Mongoid *and* MongoMapper due to incompatible gem version
67
- requirements. Therefore precedence was given to Mongoid as it is significantly more
68
- popular and actively maintained.
69
-
70
- ### DataMapper
71
-
72
- Include the `OmniAuth::Identity::Models::DataMapper` mixin and specify
73
- fields that you will need.
74
-
75
- ```ruby
76
- class Identity
77
- include DataMapper::Resource
78
- include OmniAuth::Identity::Models::DataMapper
79
-
80
- property :id, Serial
81
- property :email, String
82
- property :password_digest, Text
83
-
84
- attr_accessor :password_confirmation
85
-
86
- end
87
- ```
88
-
89
- ### CouchPotato
90
-
91
- Include the `OmniAuth::Identity::Models::CouchPotatoModule` mixin and specify fields that you will need.
92
-
93
- ```ruby
94
- class Identity
95
- include CouchPotato::Persistence
96
- include OmniAuth::Identity::Models::CouchPotatoModule
97
-
98
- property :email
99
- property :password_digest
100
-
101
- def self.where search_hash
102
- CouchPotato.database.view Identity.by_email(:key => search_hash)
103
- end
104
-
105
- view :by_email, :key => :email
106
- end
107
- ```
108
-
109
- Once you've got an Identity persistence model and the strategy up and
110
- running, you can point users to `/auth/identity` and it will request
111
- that they log in or give them the opportunity to sign up for an account.
112
- Once they have authenticated with their identity, OmniAuth will call
113
- through to `/auth/identity/callback` with the same kinds of information
114
- it would had the user authenticated through an external provider.
115
- Simple!
116
-
117
- ## Custom Auth Model
118
-
119
- To use a class other than the default, specify the <tt>:model</tt> option to a
120
- different class.
121
-
122
- ```ruby
123
- use OmniAuth::Builder do
124
- provider :identity, :fields => [:email], :model => MyCustomClass
125
- end
126
- ```
127
-
128
- ## Customizing Registration Failure
129
-
130
- To use your own custom registration form, create a form that POSTs to
131
- '/auth/identity/register' with 'password', 'password_confirmation', and your
132
- other fields.
133
-
134
- ```erb
135
- <%= form_tag '/auth/identity/register' do |f| %>
136
- <h1>Create an Account</h1>
137
- <%= text_field_tag :email %>
138
- <%= password_field_tag :password %>
139
- <%= password_field_tag :password_confirmation %>
140
- <%= submit_tag %>
141
- <% end %>
142
- ```
143
-
144
- Beware not to nest your form parameters within a namespace. This strategy
145
- looks for the form parameters at the top level of the post params. If you are
146
- using [simple\_form](https://github.com/plataformatec/simple_form), then you
147
- can avoid the params nesting by specifying <tt>:input_html</tt>.
148
-
149
- ```erb
150
- <%= simple_form_for @identity, :url => '/auth/identity/register' do |f| %>
151
- <h1>Create an Account</h1>
152
- <%# specify :input_html to avoid params nesting %>
153
- <%= f.input :email, :input_html => {:name => 'email'} %>
154
- <%= f.input :password, :as => 'password', :input_html => {:name => 'password'} %>
155
- <%= f.input :password_confirmation, :label => "Confirm Password", :as => 'password', :input_html => {:name => 'password_confirmation'} %>
156
- <button type='submit'>Sign Up</button>
157
- <% end %>
158
- ```
159
-
160
- Next you'll need to let OmniAuth know what action to call when a registration
161
- fails. In your OmniAuth configuration, specify any valid rack endpoint in the
162
- <tt>:on_failed_registration</tt> option.
163
-
164
- ```ruby
165
- use OmniAuth::Builder do
166
- provider :identity,
167
- :fields => [:email],
168
- :on_failed_registration => UsersController.action(:new)
169
- end
170
- ```
171
-
172
- For more information on rack endpoints, check out [this
173
- introduction](http://library.edgecase.com/Rails/2011/01/04/rails-routing-and-rack-endpoints.html)
174
- and
175
- [ActionController::Metal](http://rubydoc.info/docs/rails/ActionController/Metal)
176
-
177
- ## Customizing Locate Conditions
178
-
179
- You can customize the way that matching records are found when authenticating.
180
- For example, for a site with multiple domains, you may wish to scope the search
181
- within a particular subdomain. To do so, add :locate_conditions to your config.
182
- The default value is:
183
-
184
- ```ruby
185
- :locate_conditions => lambda { |req| { model.auth_key => req['auth_key']} }
186
- ```
187
-
188
- locate_conditions takes a Proc object, and must return a hash. The resulting hash is used
189
- as a parameter in the locate method for your ORM. The proc is evaluated in the
190
- callback context, and has access to the Identity model (using `model`) and receives the request
191
- object as a parameter. Note that model.auth_key defaults to 'email', but is also configurable.
192
-
193
- Note: Be careful when customizing locate_conditions. The best way to modify the conditions is
194
- to copy the default value, and then add to the hash. Removing the default condition will almost
195
- always break things!
196
-
197
- ## License
198
-
199
- MIT License. See LICENSE for details.
200
-
201
- ## Copyright
202
-
203
- Copyright (c) 2020- Andrew Roberts, and Jellybooks Ltd.
204
- Copyright (c) 2010-2015 Michael Bleigh, and Intridea, Inc.