clearance 1.0.0.rc7 → 1.0.0.rc8

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of clearance might be problematic. Click here for more details.

Files changed (55) hide show
  1. checksums.yaml +6 -14
  2. data/.gitignore +3 -3
  3. data/.travis.yml +0 -17
  4. data/Appraisals +2 -6
  5. data/Gemfile +16 -1
  6. data/Gemfile.lock +116 -107
  7. data/NEWS.md +7 -3
  8. data/README.md +195 -129
  9. data/Rakefile +5 -9
  10. data/app/views/layouts/application.html.erb +1 -1
  11. data/clearance.gemspec +20 -17
  12. data/config/locales/clearance.en.yml +2 -1
  13. data/config/routes.rb +2 -2
  14. data/features/add_migrations_to_project.feature +7 -37
  15. data/features/integration_with_rspec.feature +5 -4
  16. data/features/integration_with_test_unit.feature +11 -38
  17. data/features/step_definitions/configuration_steps.rb +94 -8
  18. data/features/step_definitions/gem_file_steps.rb +8 -0
  19. data/features/support/env.rb +7 -0
  20. data/lib/clearance/authorization.rb +16 -3
  21. data/lib/clearance/configuration.rb +2 -0
  22. data/lib/clearance/engine.rb +1 -1
  23. data/lib/clearance/session.rb +12 -11
  24. data/lib/clearance/testing.rb +0 -4
  25. data/lib/clearance/testing/application.rb +23 -24
  26. data/lib/clearance/testing/helpers.rb +1 -1
  27. data/lib/clearance/user.rb +17 -10
  28. data/lib/clearance/version.rb +1 -1
  29. data/lib/generators/clearance/specs/templates/{integration → features}/clearance/user_signs_out_spec.rb +0 -0
  30. data/lib/generators/clearance/specs/templates/{integration → features}/clearance/visitor_resets_password_spec.rb +24 -0
  31. data/lib/generators/clearance/specs/templates/{integration → features}/clearance/visitor_signs_in_spec.rb +0 -0
  32. data/lib/generators/clearance/specs/templates/{integration → features}/clearance/visitor_signs_up_spec.rb +8 -0
  33. data/lib/generators/clearance/specs/templates/{integration → features}/clearance/visitor_updates_password_spec.rb +0 -0
  34. data/lib/generators/clearance/specs/templates/support/features.rb +5 -0
  35. data/lib/generators/clearance/specs/templates/support/{integration → features}/clearance_helpers.rb +1 -1
  36. data/spec/clearance/session_spec.rb +27 -0
  37. data/spec/controllers/apis_controller_spec.rb +36 -0
  38. data/spec/controllers/passwords_controller_spec.rb +13 -11
  39. data/spec/controllers/sessions_controller_spec.rb +13 -27
  40. data/spec/controllers/users_controller_spec.rb +6 -2
  41. data/spec/factories.rb +5 -0
  42. data/spec/models/user_spec.rb +13 -19
  43. data/spec/support/clearance.rb +9 -0
  44. metadata +36 -218
  45. data/gemfiles/3.0.20.gemfile +0 -7
  46. data/gemfiles/3.0.20.gemfile.lock +0 -173
  47. data/gemfiles/3.1.11.gemfile +0 -7
  48. data/gemfiles/3.1.11.gemfile.lock +0 -183
  49. data/gemfiles/3.2.12.gemfile +0 -7
  50. data/gemfiles/3.2.12.gemfile.lock +0 -182
  51. data/gemfiles/3.2.13.rc2.gemfile +0 -7
  52. data/gemfiles/3.2.13.rc2.gemfile.lock +0 -182
  53. data/lib/clearance/password_strategies/fake.rb +0 -23
  54. data/lib/generators/clearance/specs/templates/support/integration.rb +0 -6
  55. data/lib/generators/clearance/specs/templates/support/integration/action_mailer_helpers.rb +0 -19
@@ -30,7 +30,9 @@ describe Clearance::UsersController do
30
30
  post :create, :user => user_attributes
31
31
  end
32
32
 
33
- it { should assign_to(:user) }
33
+ it 'assigns a user' do
34
+ assigns(:user).should be
35
+ end
34
36
 
35
37
  it 'should create a new user' do
36
38
  User.count.should == @old_user_count + 1
@@ -48,7 +50,9 @@ describe Clearance::UsersController do
48
50
  post :create, :user => user_attributes
49
51
  end
50
52
 
51
- it { should assign_to(:user) }
53
+ it 'assigns a user' do
54
+ assigns(:user).should be
55
+ end
52
56
 
53
57
  it 'should create a new user' do
54
58
  User.count.should == @old_user_count + 1
@@ -6,5 +6,10 @@ FactoryGirl.define do
6
6
  factory :user do
7
7
  email
8
8
  password 'password'
9
+
10
+ factory :user_with_optional_password, class: 'UserWithOptionalPassword' do
11
+ password nil
12
+ encrypted_password ''
13
+ end
9
14
  end
10
15
  end
@@ -42,7 +42,7 @@ describe User do
42
42
  @user.should be_authenticated(@password)
43
43
  end
44
44
 
45
- it 'is authenticated with incorrect credentials' do
45
+ it 'is not authenticated with incorrect credentials' do
46
46
  User.authenticate(@user.email, 'bad_password').should be_nil
47
47
  @user.should_not be_authenticated('bad password')
48
48
  end
@@ -126,7 +126,7 @@ describe User do
126
126
  end
127
127
 
128
128
  it 'does not change encrypted password' do
129
- @user.encrypted_password.should == @old_encrypted_password
129
+ @user.encrypted_password.to_s.should == @old_encrypted_password
130
130
  end
131
131
 
132
132
  it 'does not clear confirmation token' do
@@ -154,23 +154,6 @@ describe User do
154
154
  it { should allow_value('').for(:email) }
155
155
  end
156
156
 
157
- describe 'a user with an optional password' do
158
- before do
159
- @user = User.new
160
-
161
- class << @user
162
- def password_optional?
163
- true
164
- end
165
- end
166
- end
167
-
168
- subject { @user }
169
-
170
- it { should allow_value(nil).for(:password) }
171
- it { should allow_value('').for(:password) }
172
- end
173
-
174
157
  describe 'user factory' do
175
158
  it 'should create a valid user with just an overridden password' do
176
159
  build(:user, :password => 'test').should be_valid
@@ -198,3 +181,14 @@ describe User do
198
181
  end
199
182
  end
200
183
  end
184
+
185
+ describe UserWithOptionalPassword do
186
+ it { should allow_value(nil).for(:password) }
187
+ it { should allow_value('').for(:password) }
188
+
189
+ it 'cannot authenticate with blank password' do
190
+ user = create(:user_with_optional_password)
191
+
192
+ UserWithOptionalPassword.authenticate(user.email, '').should be_nil
193
+ end
194
+ end
@@ -1,6 +1,7 @@
1
1
  require 'clearance'
2
2
 
3
3
  Clearance.configure do |config|
4
+ # need an empty block to initialize the configuration object
4
5
  end
5
6
 
6
7
  class ApplicationController < ActionController::Base
@@ -11,6 +12,14 @@ class User < ActiveRecord::Base
11
12
  include Clearance::User
12
13
  end
13
14
 
15
+ class UserWithOptionalPassword < User
16
+ private
17
+
18
+ def password_optional?
19
+ true
20
+ end
21
+ end
22
+
14
23
  module Clearance
15
24
  module Test
16
25
  module Redirects
metadata CHANGED
@@ -1,248 +1,74 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clearance
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.rc7
4
+ version: 1.0.0.rc8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Croak
8
+ - Eugene Bolshakov
8
9
  - Mike Burns
9
- - Jason Morrison
10
10
  - Joe Ferris
11
- - Eugene Bolshakov
12
11
  - Nick Quaranto
13
12
  - Josh Nichols
13
+ - Matt Jankowski
14
+ - Josh Clayton
15
+ - Gabe Berke-Williams
16
+ - Greg Lazarev
14
17
  - Mike Breen
15
- - Jon Yurek
16
- - Chad Pytel
18
+ - Prem Sichanugrist
19
+ - Harlow Ward
20
+ - Ryan McGeary
21
+ - Derek Prior
22
+ - Jason Morrison
23
+ - Galen Frechette
24
+ - Josh Steiner
17
25
  autorequire:
18
26
  bindir: bin
19
27
  cert_chain: []
20
- date: 2013-03-26 00:00:00.000000000 Z
28
+ date: 2013-07-21 00:00:00.000000000 Z
21
29
  dependencies:
22
30
  - !ruby/object:Gem::Dependency
23
31
  name: bcrypt-ruby
24
32
  requirement: !ruby/object:Gem::Requirement
25
33
  requirements:
26
- - - ! '>='
34
+ - - '>='
27
35
  - !ruby/object:Gem::Version
28
36
  version: '0'
29
37
  type: :runtime
30
38
  prerelease: false
31
39
  version_requirements: !ruby/object:Gem::Requirement
32
40
  requirements:
33
- - - ! '>='
41
+ - - '>='
34
42
  - !ruby/object:Gem::Version
35
43
  version: '0'
36
44
  - !ruby/object:Gem::Dependency
37
45
  name: email_validator
38
46
  requirement: !ruby/object:Gem::Requirement
39
47
  requirements:
40
- - - ! '>='
48
+ - - ~>
41
49
  - !ruby/object:Gem::Version
42
- version: '0'
50
+ version: '1.4'
43
51
  type: :runtime
44
52
  prerelease: false
45
53
  version_requirements: !ruby/object:Gem::Requirement
46
54
  requirements:
47
- - - ! '>='
55
+ - - ~>
48
56
  - !ruby/object:Gem::Version
49
- version: '0'
57
+ version: '1.4'
50
58
  - !ruby/object:Gem::Dependency
51
59
  name: rails
52
60
  requirement: !ruby/object:Gem::Requirement
53
61
  requirements:
54
- - - ! '>='
62
+ - - '>='
55
63
  - !ruby/object:Gem::Version
56
- version: '3.0'
64
+ version: '3.1'
57
65
  type: :runtime
58
66
  prerelease: false
59
67
  version_requirements: !ruby/object:Gem::Requirement
60
68
  requirements:
61
- - - ! '>='
62
- - !ruby/object:Gem::Version
63
- version: '3.0'
64
- - !ruby/object:Gem::Dependency
65
- name: appraisal
66
- requirement: !ruby/object:Gem::Requirement
67
- requirements:
68
- - - '='
69
- - !ruby/object:Gem::Version
70
- version: 0.4.1
71
- type: :development
72
- prerelease: false
73
- version_requirements: !ruby/object:Gem::Requirement
74
- requirements:
75
- - - '='
76
- - !ruby/object:Gem::Version
77
- version: 0.4.1
78
- - !ruby/object:Gem::Dependency
79
- name: aruba
80
- requirement: !ruby/object:Gem::Requirement
81
- requirements:
82
- - - '='
83
- - !ruby/object:Gem::Version
84
- version: 0.4.11
85
- type: :development
86
- prerelease: false
87
- version_requirements: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - '='
90
- - !ruby/object:Gem::Version
91
- version: 0.4.11
92
- - !ruby/object:Gem::Dependency
93
- name: bourne
94
- requirement: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - '='
97
- - !ruby/object:Gem::Version
98
- version: 1.3.0
99
- type: :development
100
- prerelease: false
101
- version_requirements: !ruby/object:Gem::Requirement
102
- requirements:
103
- - - '='
104
- - !ruby/object:Gem::Version
105
- version: 1.3.0
106
- - !ruby/object:Gem::Dependency
107
- name: bundler
108
- requirement: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ~>
111
- - !ruby/object:Gem::Version
112
- version: '1.1'
113
- type: :development
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ~>
118
- - !ruby/object:Gem::Version
119
- version: '1.1'
120
- - !ruby/object:Gem::Dependency
121
- name: capybara
122
- requirement: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - '='
125
- - !ruby/object:Gem::Version
126
- version: 1.1.2
127
- type: :development
128
- prerelease: false
129
- version_requirements: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - '='
132
- - !ruby/object:Gem::Version
133
- version: 1.1.2
134
- - !ruby/object:Gem::Dependency
135
- name: cucumber-rails
136
- requirement: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - '='
139
- - !ruby/object:Gem::Version
140
- version: 1.1.1
141
- type: :development
142
- prerelease: false
143
- version_requirements: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - '='
146
- - !ruby/object:Gem::Version
147
- version: 1.1.1
148
- - !ruby/object:Gem::Dependency
149
- name: database_cleaner
150
- requirement: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - '='
153
- - !ruby/object:Gem::Version
154
- version: 0.8.0
155
- type: :development
156
- prerelease: false
157
- version_requirements: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - '='
160
- - !ruby/object:Gem::Version
161
- version: 0.8.0
162
- - !ruby/object:Gem::Dependency
163
- name: factory_girl_rails
164
- requirement: !ruby/object:Gem::Requirement
165
- requirements:
166
- - - '='
167
- - !ruby/object:Gem::Version
168
- version: 3.5.0
169
- type: :development
170
- prerelease: false
171
- version_requirements: !ruby/object:Gem::Requirement
172
- requirements:
173
- - - '='
174
- - !ruby/object:Gem::Version
175
- version: 3.5.0
176
- - !ruby/object:Gem::Dependency
177
- name: psych
178
- requirement: !ruby/object:Gem::Requirement
179
- requirements:
180
- - - ~>
181
- - !ruby/object:Gem::Version
182
- version: 1.3.4
183
- type: :development
184
- prerelease: false
185
- version_requirements: !ruby/object:Gem::Requirement
186
- requirements:
187
- - - ~>
188
- - !ruby/object:Gem::Version
189
- version: 1.3.4
190
- - !ruby/object:Gem::Dependency
191
- name: rspec-rails
192
- requirement: !ruby/object:Gem::Requirement
193
- requirements:
194
- - - '='
195
- - !ruby/object:Gem::Version
196
- version: 2.12.2
197
- type: :development
198
- prerelease: false
199
- version_requirements: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - '='
202
- - !ruby/object:Gem::Version
203
- version: 2.12.2
204
- - !ruby/object:Gem::Dependency
205
- name: shoulda-matchers
206
- requirement: !ruby/object:Gem::Requirement
207
- requirements:
208
- - - '='
209
- - !ruby/object:Gem::Version
210
- version: 1.2.0
211
- type: :development
212
- prerelease: false
213
- version_requirements: !ruby/object:Gem::Requirement
214
- requirements:
215
- - - '='
216
- - !ruby/object:Gem::Version
217
- version: 1.2.0
218
- - !ruby/object:Gem::Dependency
219
- name: sqlite3
220
- requirement: !ruby/object:Gem::Requirement
221
- requirements:
222
- - - '='
223
- - !ruby/object:Gem::Version
224
- version: 1.3.6
225
- type: :development
226
- prerelease: false
227
- version_requirements: !ruby/object:Gem::Requirement
228
- requirements:
229
- - - '='
230
- - !ruby/object:Gem::Version
231
- version: 1.3.6
232
- - !ruby/object:Gem::Dependency
233
- name: timecop
234
- requirement: !ruby/object:Gem::Requirement
235
- requirements:
236
- - - '='
237
- - !ruby/object:Gem::Version
238
- version: 0.3.5
239
- type: :development
240
- prerelease: false
241
- version_requirements: !ruby/object:Gem::Requirement
242
- requirements:
243
- - - '='
69
+ - - '>='
244
70
  - !ruby/object:Gem::Version
245
- version: 0.3.5
71
+ version: '3.1'
246
72
  description: Rails authentication & authorization with email & password.
247
73
  email: support@thoughtbot.com
248
74
  executables: []
@@ -288,14 +114,6 @@ files:
288
114
  - features/step_definitions/gem_file_steps.rb
289
115
  - features/support/aruba.rb
290
116
  - features/support/env.rb
291
- - gemfiles/3.0.20.gemfile
292
- - gemfiles/3.0.20.gemfile.lock
293
- - gemfiles/3.1.11.gemfile
294
- - gemfiles/3.1.11.gemfile.lock
295
- - gemfiles/3.2.12.gemfile
296
- - gemfiles/3.2.12.gemfile.lock
297
- - gemfiles/3.2.13.rc2.gemfile
298
- - gemfiles/3.2.13.rc2.gemfile.lock
299
117
  - lib/clearance.rb
300
118
  - lib/clearance/authentication.rb
301
119
  - lib/clearance/authorization.rb
@@ -310,7 +128,6 @@ files:
310
128
  - lib/clearance/password_strategies/bcrypt.rb
311
129
  - lib/clearance/password_strategies/bcrypt_migration_from_sha1.rb
312
130
  - lib/clearance/password_strategies/blowfish.rb
313
- - lib/clearance/password_strategies/fake.rb
314
131
  - lib/clearance/password_strategies/sha1.rb
315
132
  - lib/clearance/rack_session.rb
316
133
  - lib/clearance/session.rb
@@ -333,17 +150,16 @@ files:
333
150
  - lib/generators/clearance/specs/USAGE
334
151
  - lib/generators/clearance/specs/specs_generator.rb
335
152
  - lib/generators/clearance/specs/templates/factories/clearance.rb
336
- - lib/generators/clearance/specs/templates/integration/clearance/user_signs_out_spec.rb
337
- - lib/generators/clearance/specs/templates/integration/clearance/visitor_resets_password_spec.rb
338
- - lib/generators/clearance/specs/templates/integration/clearance/visitor_signs_in_spec.rb
339
- - lib/generators/clearance/specs/templates/integration/clearance/visitor_signs_up_spec.rb
340
- - lib/generators/clearance/specs/templates/integration/clearance/visitor_updates_password_spec.rb
153
+ - lib/generators/clearance/specs/templates/features/clearance/user_signs_out_spec.rb
154
+ - lib/generators/clearance/specs/templates/features/clearance/visitor_resets_password_spec.rb
155
+ - lib/generators/clearance/specs/templates/features/clearance/visitor_signs_in_spec.rb
156
+ - lib/generators/clearance/specs/templates/features/clearance/visitor_signs_up_spec.rb
157
+ - lib/generators/clearance/specs/templates/features/clearance/visitor_updates_password_spec.rb
341
158
  - lib/generators/clearance/specs/templates/support/action_mailer.rb
342
159
  - lib/generators/clearance/specs/templates/support/clearance.rb
343
160
  - lib/generators/clearance/specs/templates/support/factory_girl.rb
344
- - lib/generators/clearance/specs/templates/support/integration.rb
345
- - lib/generators/clearance/specs/templates/support/integration/action_mailer_helpers.rb
346
- - lib/generators/clearance/specs/templates/support/integration/clearance_helpers.rb
161
+ - lib/generators/clearance/specs/templates/support/features.rb
162
+ - lib/generators/clearance/specs/templates/support/features/clearance_helpers.rb
347
163
  - lib/generators/clearance/views/USAGE
348
164
  - lib/generators/clearance/views/views_generator.rb
349
165
  - spec/clearance/back_door_spec.rb
@@ -352,6 +168,7 @@ files:
352
168
  - spec/clearance/rack_session_spec.rb
353
169
  - spec/clearance/session_spec.rb
354
170
  - spec/configuration_spec.rb
171
+ - spec/controllers/apis_controller_spec.rb
355
172
  - spec/controllers/denies_controller_spec.rb
356
173
  - spec/controllers/flashes_controller_spec.rb
357
174
  - spec/controllers/forgeries_controller_spec.rb
@@ -381,17 +198,17 @@ require_paths:
381
198
  - lib
382
199
  required_ruby_version: !ruby/object:Gem::Requirement
383
200
  requirements:
384
- - - ! '>='
201
+ - - '>='
385
202
  - !ruby/object:Gem::Version
386
203
  version: 1.9.2
387
204
  required_rubygems_version: !ruby/object:Gem::Requirement
388
205
  requirements:
389
- - - ! '>'
206
+ - - '>'
390
207
  - !ruby/object:Gem::Version
391
208
  version: 1.3.1
392
209
  requirements: []
393
210
  rubyforge_project:
394
- rubygems_version: 2.0.0
211
+ rubygems_version: 2.0.5
395
212
  signing_key:
396
213
  specification_version: 4
397
214
  summary: Rails authentication & authorization with email & password.
@@ -409,6 +226,7 @@ test_files:
409
226
  - spec/clearance/rack_session_spec.rb
410
227
  - spec/clearance/session_spec.rb
411
228
  - spec/configuration_spec.rb
229
+ - spec/controllers/apis_controller_spec.rb
412
230
  - spec/controllers/denies_controller_spec.rb
413
231
  - spec/controllers/flashes_controller_spec.rb
414
232
  - spec/controllers/forgeries_controller_spec.rb