authenticate 0.2.3 → 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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -4
  3. data/CHANGELOG.md +12 -0
  4. data/Gemfile +1 -0
  5. data/Gemfile.lock +21 -6
  6. data/app/controllers/authenticate/passwords_controller.rb +1 -1
  7. data/authenticate.gemspec +7 -3
  8. data/config/locales/authenticate.en.yml +1 -1
  9. data/gemfiles/rails42.gemfile +6 -1
  10. data/lib/authenticate/callbacks/brute_force.rb +3 -4
  11. data/lib/authenticate/configuration.rb +2 -2
  12. data/lib/authenticate/controller.rb +1 -2
  13. data/lib/authenticate/model/brute_force.rb +2 -2
  14. data/lib/authenticate/model/db_password.rb +2 -3
  15. data/lib/authenticate/model/email.rb +3 -6
  16. data/lib/authenticate/model/lifetimed.rb +1 -1
  17. data/lib/authenticate/model/password_reset.rb +1 -1
  18. data/lib/authenticate/model/timeoutable.rb +2 -2
  19. data/lib/authenticate/model/trackable.rb +1 -1
  20. data/lib/authenticate/model/username.rb +1 -1
  21. data/lib/authenticate/session.rb +0 -4
  22. data/lib/authenticate/user.rb +12 -0
  23. data/lib/authenticate/version.rb +1 -1
  24. data/spec/controllers/passwords_controller_spec.rb +119 -0
  25. data/spec/controllers/secured_controller_spec.rb +70 -0
  26. data/spec/controllers/sessions_controller_spec.rb +86 -0
  27. data/spec/controllers/users_controller_spec.rb +82 -0
  28. data/spec/dummy/app/controllers/application_controller.rb +2 -0
  29. data/spec/dummy/app/controllers/welcome_controller.rb +4 -0
  30. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  31. data/spec/dummy/app/views/welcome/index.html.erb +4 -0
  32. data/spec/dummy/config/application.rb +2 -0
  33. data/spec/dummy/config/environments/production.rb +12 -0
  34. data/spec/dummy/config/initializers/authenticate.rb +4 -11
  35. data/spec/dummy/config/routes.rb +3 -0
  36. data/spec/dummy/db/test.sqlite3 +0 -0
  37. data/spec/factories/users.rb +2 -4
  38. data/spec/features/brute_force_spec.rb +49 -0
  39. data/spec/features/max_session_lifetime_spec.rb +30 -0
  40. data/spec/features/password_reset_spec.rb +69 -0
  41. data/spec/features/password_update_spec.rb +41 -0
  42. data/spec/features/sign_in_spec.rb +29 -0
  43. data/spec/features/sign_out_spec.rb +22 -0
  44. data/spec/features/sign_up_spec.rb +42 -0
  45. data/spec/features/timeoutable_spec.rb +30 -0
  46. data/spec/model/brute_force_spec.rb +26 -29
  47. data/spec/model/configuration_spec.rb +61 -0
  48. data/spec/model/db_password_spec.rb +8 -9
  49. data/spec/model/email_spec.rb +0 -1
  50. data/spec/model/lifetimed_spec.rb +6 -18
  51. data/spec/model/password_reset_spec.rb +2 -9
  52. data/spec/model/session_spec.rb +16 -23
  53. data/spec/model/timeoutable_spec.rb +8 -7
  54. data/spec/model/trackable_spec.rb +0 -1
  55. data/spec/model/user_spec.rb +1 -2
  56. data/spec/spec_helper.rb +33 -131
  57. data/spec/support/controllers/controller_helpers.rb +24 -0
  58. data/spec/support/features/feature_helpers.rb +36 -0
  59. metadata +80 -8
  60. data/spec/configuration_spec.rb +0 -60
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authenticate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Tomich
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-15 00:00:00.000000000 Z
11
+ date: 2016-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bcrypt
@@ -59,7 +59,7 @@ dependencies:
59
59
  - !ruby/object:Gem::Version
60
60
  version: '5.1'
61
61
  - !ruby/object:Gem::Dependency
62
- name: factory_girl_rails
62
+ name: factory_girl
63
63
  requirement: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - ">="
@@ -76,16 +76,16 @@ dependencies:
76
76
  name: rspec-rails
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - ">="
79
+ - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
81
+ version: 3.1.0
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - ">="
86
+ - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: '0'
88
+ version: 3.1.0
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: pry
91
91
  requirement: !ruby/object:Gem::Requirement
@@ -114,6 +114,62 @@ dependencies:
114
114
  - - ">="
115
115
  - !ruby/object:Gem::Version
116
116
  version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: shoulda-matchers
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '2.8'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '2.8'
131
+ - !ruby/object:Gem::Dependency
132
+ name: capybara
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 2.6.2
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: 2.6.2
145
+ - !ruby/object:Gem::Dependency
146
+ name: database_cleaner
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: 1.5.1
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: 1.5.1
159
+ - !ruby/object:Gem::Dependency
160
+ name: timecop
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: 0.8.0
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: 0.8.0
117
173
  description: Authentication for Rails applications
118
174
  email:
119
175
  - justin@tomich.org
@@ -201,7 +257,10 @@ files:
201
257
  - lib/generators/authenticate/views/USAGE
202
258
  - lib/generators/authenticate/views/views_generator.rb
203
259
  - lib/tasks/authenticate_tasks.rake
204
- - spec/configuration_spec.rb
260
+ - spec/controllers/passwords_controller_spec.rb
261
+ - spec/controllers/secured_controller_spec.rb
262
+ - spec/controllers/sessions_controller_spec.rb
263
+ - spec/controllers/users_controller_spec.rb
205
264
  - spec/dummy/README.rdoc
206
265
  - spec/dummy/Rakefile
207
266
  - spec/dummy/app/assets/images/.keep
@@ -209,12 +268,14 @@ files:
209
268
  - spec/dummy/app/assets/stylesheets/application.css
210
269
  - spec/dummy/app/controllers/application_controller.rb
211
270
  - spec/dummy/app/controllers/concerns/.keep
271
+ - spec/dummy/app/controllers/welcome_controller.rb
212
272
  - spec/dummy/app/helpers/application_helper.rb
213
273
  - spec/dummy/app/mailers/.keep
214
274
  - spec/dummy/app/models/.keep
215
275
  - spec/dummy/app/models/concerns/.keep
216
276
  - spec/dummy/app/models/user.rb
217
277
  - spec/dummy/app/views/layouts/application.html.erb
278
+ - spec/dummy/app/views/welcome/index.html.erb
218
279
  - spec/dummy/bin/bundle
219
280
  - spec/dummy/bin/rails
220
281
  - spec/dummy/bin/rake
@@ -253,7 +314,16 @@ files:
253
314
  - spec/dummy/public/500.html
254
315
  - spec/dummy/public/favicon.ico
255
316
  - spec/factories/users.rb
317
+ - spec/features/brute_force_spec.rb
318
+ - spec/features/max_session_lifetime_spec.rb
319
+ - spec/features/password_reset_spec.rb
320
+ - spec/features/password_update_spec.rb
321
+ - spec/features/sign_in_spec.rb
322
+ - spec/features/sign_out_spec.rb
323
+ - spec/features/sign_up_spec.rb
324
+ - spec/features/timeoutable_spec.rb
256
325
  - spec/model/brute_force_spec.rb
326
+ - spec/model/configuration_spec.rb
257
327
  - spec/model/db_password_spec.rb
258
328
  - spec/model/email_spec.rb
259
329
  - spec/model/lifetimed_spec.rb
@@ -265,6 +335,8 @@ files:
265
335
  - spec/model/user_spec.rb
266
336
  - spec/orm/active_record.rb
267
337
  - spec/spec_helper.rb
338
+ - spec/support/controllers/controller_helpers.rb
339
+ - spec/support/features/feature_helpers.rb
268
340
  homepage: http://github.com/tomichj/authenticate
269
341
  licenses:
270
342
  - MIT
@@ -1,60 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Authenticate::Configuration do
4
- after {restore_default_configuration}
5
-
6
- context 'when no user_model_name is specified' do
7
- before do
8
- Authenticate.configure do |config|
9
- end
10
- end
11
-
12
- it 'defaults to User' do
13
- expect(Authenticate.configuration.user_model).to eq '::User'
14
- expect(Authenticate.configuration.user_model_class).to eq ::User
15
- end
16
- end
17
-
18
- context 'with a customer user_model' do
19
- before do
20
- MyUser = Class.new
21
- Authenticate.configure do |config|
22
- config.user_model = 'MyUser'
23
- end
24
- end
25
-
26
- it 'is used instead of User' do
27
- expect(Authenticate.configuration.user_model_class).to eq MyUser
28
- end
29
- end
30
-
31
- describe '#authentication_strategy' do
32
- context 'with no strategy set' do
33
- it 'defaults to email' do
34
- expect(Authenticate.configuration.authentication_strategy).to eq :email
35
- end
36
- it 'includes email in modules' do
37
- expect(Authenticate.configuration.modules).to include :email
38
- end
39
- it 'does not include username in modules' do
40
- expect(Authenticate.configuration.modules).to_not include :username
41
- end
42
- end
43
-
44
- context 'with strategy set to username' do
45
- before do
46
- Authenticate.configure do |config|
47
- config.authentication_strategy = :username
48
- end
49
- end
50
- it 'includes username in modules' do
51
- expect(Authenticate.configuration.modules).to include :username
52
- end
53
- it 'does not include email in modules' do
54
- expect(Authenticate.configuration.modules).to_not include :email
55
- end
56
- end
57
-
58
- end
59
-
60
- end