omniauth-identity 2.0.0 → 3.0.4

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.
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.