clearance 1.0.0.rc1 → 1.0.0.rc2
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.
- data/Appraisals +1 -1
- data/Gemfile.lock +3 -3
- data/LICENSE +1 -1
- data/NEWS.md +1 -2
- data/README.md +69 -59
- data/clearance.gemspec +1 -1
- data/gemfiles/{3.0.15.gemfile → 3.0.17.gemfile} +1 -1
- data/gemfiles/{3.0.15.gemfile.lock → 3.0.17.gemfile.lock} +36 -36
- data/gemfiles/{3.2.6.gemfile → 3.1.8.gemfile} +1 -1
- data/gemfiles/{3.1.6.gemfile.lock → 3.1.8.gemfile.lock} +38 -38
- data/gemfiles/{3.1.6.gemfile → 3.2.8.gemfile} +1 -1
- data/gemfiles/{3.2.6.gemfile.lock → 3.2.8.gemfile.lock} +40 -40
- data/lib/clearance/password_strategies/bcrypt_migration_from_sha1.rb +6 -1
- data/lib/clearance/version.rb +1 -1
- data/spec/models/bcrypt_migration_from_sha1_spec.rb +13 -0
- metadata +163 -54
data/Appraisals
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
clearance (1.0.0.
|
4
|
+
clearance (1.0.0.rc2)
|
5
5
|
bcrypt-ruby
|
6
6
|
diesel (= 0.1.5)
|
7
7
|
rails (>= 3.0)
|
@@ -36,7 +36,7 @@ GEM
|
|
36
36
|
activesupport (3.2.6)
|
37
37
|
i18n (~> 0.6)
|
38
38
|
multi_json (~> 1.0)
|
39
|
-
addressable (2.3.
|
39
|
+
addressable (2.3.2)
|
40
40
|
appraisal (0.4.1)
|
41
41
|
bundler
|
42
42
|
rake
|
@@ -166,7 +166,7 @@ DEPENDENCIES
|
|
166
166
|
appraisal (= 0.4.1)
|
167
167
|
aruba (= 0.4.11)
|
168
168
|
bourne (= 1.1.2)
|
169
|
-
bundler (
|
169
|
+
bundler (~> 1.2.0)
|
170
170
|
capybara (= 1.1.2)
|
171
171
|
clearance!
|
172
172
|
cucumber-rails (= 1.1.1)
|
data/LICENSE
CHANGED
data/NEWS.md
CHANGED
@@ -7,8 +7,7 @@ New for 1.0.0:
|
|
7
7
|
* A revamped, more descriptive README.
|
8
8
|
* More extension points in more controllers.
|
9
9
|
* The email, encrypted_password, and remember_token fields of the users
|
10
|
-
table
|
11
|
-
* We do not support adding Clearance after-the-fact.
|
10
|
+
table are NOT NULL in the default migration.
|
12
11
|
* We support Test::Unit.
|
13
12
|
* Drop Rails plugin support.
|
14
13
|
* Add SignedIn and SignedOut routing constraints.
|
data/README.md
CHANGED
@@ -1,41 +1,47 @@
|
|
1
|
-
Clearance
|
1
|
+
Clearance
|
2
2
|
=========
|
3
3
|
|
4
|
+
[![Build Status](https://secure.travis-ci.org/thoughtbot/clearance.png)](http://travis-ci.org/thoughtbot/clearance?branch=master)
|
5
|
+
[![Code Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/thoughtbot/clearance)
|
6
|
+
|
4
7
|
Rails authentication & authorization with email & password.
|
5
8
|
|
6
|
-
Clearance was extracted out of [Airbrake](http://airbrakeapp.com/).
|
9
|
+
Clearance was extracted out of [Airbrake](http://airbrakeapp.com/).
|
10
|
+
It is intended to be small, simple, well-tested, and easy to override defaults.
|
7
11
|
|
8
|
-
Use [Github Issues](
|
12
|
+
Use [Github Issues](/thoughtbot/clearance/issues) for help.
|
9
13
|
|
10
|
-
Read [CONTRIBUTING.md](
|
14
|
+
Read [CONTRIBUTING.md](/thoughtbot/clearance/blob/master/CONTRIBUTING.md) to contribute.
|
11
15
|
|
12
16
|
Install
|
13
17
|
-------
|
14
18
|
|
15
|
-
Clearance is a Rails engine
|
16
|
-
|
19
|
+
Clearance is a Rails engine tested against
|
20
|
+
[Rails 3.x](/thoughtbot/clearance/blob/master/Appraisals) on Ruby 1.9.x.
|
17
21
|
|
18
22
|
Include the gem in your Gemfile:
|
19
23
|
|
20
|
-
gem 'clearance'
|
24
|
+
gem 'clearance', '1.0.0.rc2'
|
25
|
+
|
26
|
+
Bundle:
|
27
|
+
|
28
|
+
bundle --binstubs
|
21
29
|
|
22
|
-
Make sure the development database exists,
|
30
|
+
Make sure the development database exists. Then, run the generator:
|
23
31
|
|
24
32
|
rails generate clearance:install
|
25
33
|
|
26
|
-
|
34
|
+
The generator:
|
27
35
|
|
28
36
|
* inserts Clearance::User into your User model
|
29
37
|
* inserts Clearance::Authentication into your ApplicationController
|
30
38
|
* creates a migration that either creates a users table or adds only missing columns
|
31
39
|
|
32
|
-
|
40
|
+
Then, follow the instructions output from the generator.
|
33
41
|
|
34
|
-
Use the [0.8.x](
|
35
|
-
series of Clearance if you have a Rails 2 app.
|
42
|
+
Use the [0.8.x](/thoughtbot/clearance/tree/v0.8.8) series for Rails 2 apps.
|
36
43
|
|
37
|
-
Use
|
38
|
-
for Ruby 1.8.7.
|
44
|
+
Use [0.16.3](http://rubygems.org/gems/clearance/versions/0.16.3) for Ruby 1.8.7.
|
39
45
|
|
40
46
|
Configure
|
41
47
|
---------
|
@@ -52,49 +58,49 @@ Override any of the defaults in `config/initializers/clearance.rb`:
|
|
52
58
|
Use
|
53
59
|
---
|
54
60
|
|
55
|
-
Use `
|
56
|
-
|
57
|
-
class ArticlesController < ApplicationController
|
58
|
-
before_filter :authorize
|
59
|
-
|
60
|
-
def index
|
61
|
-
current_user.articles
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
Use `signed_in?` and `signed_out?` in controllers, views, or helpers. For example,
|
66
|
-
you might want this in a layout:
|
61
|
+
Use `current_user`, `signed_in?`, and `signed_out?` in controllers, views, and
|
62
|
+
helpers. For example:
|
67
63
|
|
68
64
|
- if signed_in?
|
69
65
|
= current_user.email
|
70
|
-
= link_to 'Sign out', sign_out_path, :
|
66
|
+
= link_to 'Sign out', sign_out_path, method: :delete
|
71
67
|
- else
|
72
68
|
= link_to 'Sign in', sign_in_path
|
73
69
|
|
74
|
-
|
70
|
+
To authenticate a user elsewhere than `sessions/new` (like in an API):
|
75
71
|
|
76
72
|
User.authenticate 'email@example.com', 'password'
|
77
73
|
|
78
|
-
When a user resets their password, Clearance delivers them an email
|
79
|
-
|
74
|
+
When a user resets their password, Clearance delivers them an email. So, you
|
75
|
+
should change the `mailer_sender` default, used in the email's "from" header:
|
80
76
|
|
81
77
|
Clearance.configure do |config|
|
82
78
|
config.mailer_sender = 'reply@example.com'
|
83
79
|
end
|
84
80
|
|
85
|
-
|
81
|
+
Use `authorize` to control access in controllers:
|
82
|
+
|
83
|
+
class ArticlesController < ApplicationController
|
84
|
+
before_filter :authorize
|
85
|
+
|
86
|
+
def index
|
87
|
+
current_user.articles
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
Or, you can authorize users in `config/routes.rb`:
|
86
92
|
|
87
93
|
Blog::Application.routes.draw do
|
88
94
|
constraints Clearance::Constraints::SignedIn.new { |user| user.admin? } do
|
89
|
-
root :
|
95
|
+
root to: 'admin'
|
90
96
|
end
|
91
97
|
|
92
98
|
constraints Clearance::Constraints::SignedIn.new do
|
93
|
-
root :
|
99
|
+
root to: 'dashboard'
|
94
100
|
end
|
95
101
|
|
96
102
|
constraints Clearance::Constraints::SignedOut.new do
|
97
|
-
root :
|
103
|
+
root to: 'marketing'
|
98
104
|
end
|
99
105
|
end
|
100
106
|
|
@@ -118,16 +124,18 @@ Rack applications can interact with it:
|
|
118
124
|
Overriding routes
|
119
125
|
-----------------
|
120
126
|
|
121
|
-
See [config/routes.rb](
|
127
|
+
See [config/routes.rb](/thoughtbot/clearance/blob/master/config/routes.rb) for
|
128
|
+
the default behavior.
|
122
129
|
|
123
130
|
To override a Clearance route, redefine it:
|
124
131
|
|
125
|
-
resource :session, :
|
132
|
+
resource :session, controller: 'sessions'
|
126
133
|
|
127
134
|
Overriding controllers
|
128
135
|
----------------------
|
129
136
|
|
130
|
-
See [app/controllers/clearance](
|
137
|
+
See [app/controllers/clearance](/thoughtbot/clearance/tree/master/app/controllers/clearance)
|
138
|
+
for the default behavior.
|
131
139
|
|
132
140
|
To override a Clearance controller, subclass it:
|
133
141
|
|
@@ -177,8 +185,8 @@ Override them like any other translation.
|
|
177
185
|
Overriding views
|
178
186
|
----------------
|
179
187
|
|
180
|
-
See [app/views](
|
181
|
-
|
188
|
+
See [app/views](/thoughtbot/clearance/tree/master/app/views) for the default
|
189
|
+
behavior.
|
182
190
|
|
183
191
|
To override a view, create your own:
|
184
192
|
|
@@ -198,30 +206,31 @@ There is a shortcut to copy all Clearance views into your app:
|
|
198
206
|
Overriding the model
|
199
207
|
--------------------
|
200
208
|
|
201
|
-
See [lib/clearance/user.rb](
|
209
|
+
See [lib/clearance/user.rb](/thoughtbot/clearance/tree/master/lib/clearance/user.rb)
|
202
210
|
for the default behavior.
|
203
211
|
|
204
212
|
To override the model, redefine public methods:
|
205
213
|
|
206
|
-
|
207
|
-
forgot_password!
|
208
|
-
reset_remember_token!
|
209
|
-
update_password(new_password)
|
214
|
+
.authenticate(email, password)
|
215
|
+
#forgot_password!
|
216
|
+
#reset_remember_token!
|
217
|
+
#update_password(new_password)
|
210
218
|
|
211
219
|
Or, redefine private methods:
|
212
220
|
|
213
|
-
downcase_email
|
214
|
-
email_optional?
|
215
|
-
generate_confirmation_token
|
216
|
-
generate_remember_token
|
217
|
-
password_optional?
|
221
|
+
#downcase_email
|
222
|
+
#email_optional?
|
223
|
+
#generate_confirmation_token
|
224
|
+
#generate_remember_token
|
225
|
+
#password_optional?
|
218
226
|
|
219
227
|
Overriding the password strategy
|
220
228
|
--------------------------------
|
221
229
|
|
222
230
|
By default, Clearance uses BCrypt encryption of the user's password.
|
223
231
|
|
224
|
-
See [lib/clearance/password_strategies/bcrypt.rb](
|
232
|
+
See [lib/clearance/password_strategies/bcrypt.rb](/thoughtbot/clearance/blob/master/lib/clearance/password_strategies/bcrypt.rb)
|
233
|
+
for the default behavior.
|
225
234
|
|
226
235
|
Change your password strategy in `config/initializers/clearance.rb:`
|
227
236
|
|
@@ -242,11 +251,11 @@ Switching password strategies may cause your existing users to not be able to si
|
|
242
251
|
|
243
252
|
If you have an existing app that used the old `SHA1` strategy and you
|
244
253
|
want to stay with SHA1, use
|
245
|
-
[Clearance::PasswordStrategies::SHA1](
|
254
|
+
[Clearance::PasswordStrategies::SHA1](/thoughtbot/clearance/blob/master/lib/clearance/password_strategies/sha1.rb).
|
246
255
|
|
247
256
|
If you have an existing app that used the old `SHA1` strategy and you
|
248
257
|
want to switch to BCrypt transparently, use
|
249
|
-
[Clearance::PasswordStrategies::BCryptMigrationFromSHA1](
|
258
|
+
[Clearance::PasswordStrategies::BCryptMigrationFromSHA1](/thoughtbot/clearance/blob/master/lib/clearance/password_strategies/bcrypt_migration_from_sha1.rb).
|
250
259
|
|
251
260
|
The SHA1 and Blowfish password strategies require an additional `salt` column in
|
252
261
|
the `users` table. Run this migration before switching to SHA or Blowfish:
|
@@ -294,9 +303,9 @@ Edit your Gemfile to include:
|
|
294
303
|
|
295
304
|
gem 'factory_girl_rails'
|
296
305
|
|
297
|
-
Edit config/enviroments/test.rb to include the following:
|
306
|
+
Edit `config/enviroments/test.rb` to include the following:
|
298
307
|
|
299
|
-
config.action_mailer.default_url_options = { :
|
308
|
+
config.action_mailer.default_url_options = { host: 'localhost:3000' }
|
300
309
|
|
301
310
|
Then run your tests!
|
302
311
|
|
@@ -345,20 +354,21 @@ Example:
|
|
345
354
|
You may want to customize the tests:
|
346
355
|
|
347
356
|
it { should deny_access }
|
348
|
-
it { should deny_access(:
|
349
|
-
it { should deny_access(:
|
357
|
+
it { should deny_access(flash: 'Denied access.') }
|
358
|
+
it { should deny_access(redirect: sign_in_url) }
|
350
359
|
|
351
360
|
Credits
|
352
361
|
-------
|
353
362
|
|
354
363
|
![thoughtbot](http://thoughtbot.com/images/tm/logo.png)
|
355
364
|
|
356
|
-
Clearance is maintained by [thoughtbot, inc](http://thoughtbot.com/community)
|
357
|
-
|
365
|
+
Clearance is maintained by [thoughtbot, inc](http://thoughtbot.com/community)
|
366
|
+
and [contributors](/thoughtbot/clearance/contributors) like you. Thank you!
|
358
367
|
|
359
368
|
License
|
360
369
|
-------
|
361
370
|
|
362
|
-
Clearance is copyright © 2009-2012 thoughtbot. It is free software, and may be
|
371
|
+
Clearance is copyright © 2009-2012 thoughtbot. It is free software, and may be
|
372
|
+
redistributed under the terms specified in the `LICENSE` file.
|
363
373
|
|
364
374
|
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
|
data/clearance.gemspec
CHANGED
@@ -28,7 +28,7 @@ Gem::Specification.new do |s|
|
|
28
28
|
s.add_development_dependency 'appraisal', '0.4.1'
|
29
29
|
s.add_development_dependency 'aruba', '0.4.11'
|
30
30
|
s.add_development_dependency 'bourne', '1.1.2'
|
31
|
-
s.add_development_dependency 'bundler', '1.
|
31
|
+
s.add_development_dependency 'bundler', '~> 1.2.0'
|
32
32
|
s.add_development_dependency 'capybara', '1.1.2'
|
33
33
|
s.add_development_dependency 'cucumber-rails', '1.1.1'
|
34
34
|
s.add_development_dependency 'database_cleaner', '0.8.0'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
|
-
remote: /
|
2
|
+
remote: /Users/croaky/dev/clearance
|
3
3
|
specs:
|
4
|
-
clearance (1.0.0.
|
4
|
+
clearance (1.0.0.rc2)
|
5
5
|
bcrypt-ruby
|
6
6
|
diesel (= 0.1.5)
|
7
7
|
rails (>= 3.0)
|
@@ -10,12 +10,12 @@ GEM
|
|
10
10
|
remote: http://rubygems.org/
|
11
11
|
specs:
|
12
12
|
abstract (1.0.0)
|
13
|
-
actionmailer (3.0.
|
14
|
-
actionpack (= 3.0.
|
13
|
+
actionmailer (3.0.17)
|
14
|
+
actionpack (= 3.0.17)
|
15
15
|
mail (~> 2.2.19)
|
16
|
-
actionpack (3.0.
|
17
|
-
activemodel (= 3.0.
|
18
|
-
activesupport (= 3.0.
|
16
|
+
actionpack (3.0.17)
|
17
|
+
activemodel (= 3.0.17)
|
18
|
+
activesupport (= 3.0.17)
|
19
19
|
builder (~> 2.1.2)
|
20
20
|
erubis (~> 2.6.6)
|
21
21
|
i18n (~> 0.5.0)
|
@@ -23,20 +23,20 @@ GEM
|
|
23
23
|
rack-mount (~> 0.6.14)
|
24
24
|
rack-test (~> 0.5.7)
|
25
25
|
tzinfo (~> 0.3.23)
|
26
|
-
activemodel (3.0.
|
27
|
-
activesupport (= 3.0.
|
26
|
+
activemodel (3.0.17)
|
27
|
+
activesupport (= 3.0.17)
|
28
28
|
builder (~> 2.1.2)
|
29
29
|
i18n (~> 0.5.0)
|
30
|
-
activerecord (3.0.
|
31
|
-
activemodel (= 3.0.
|
32
|
-
activesupport (= 3.0.
|
30
|
+
activerecord (3.0.17)
|
31
|
+
activemodel (= 3.0.17)
|
32
|
+
activesupport (= 3.0.17)
|
33
33
|
arel (~> 2.0.10)
|
34
34
|
tzinfo (~> 0.3.23)
|
35
|
-
activeresource (3.0.
|
36
|
-
activemodel (= 3.0.
|
37
|
-
activesupport (= 3.0.
|
38
|
-
activesupport (3.0.
|
39
|
-
addressable (2.3.
|
35
|
+
activeresource (3.0.17)
|
36
|
+
activemodel (= 3.0.17)
|
37
|
+
activesupport (= 3.0.17)
|
38
|
+
activesupport (3.0.17)
|
39
|
+
addressable (2.3.2)
|
40
40
|
appraisal (0.4.1)
|
41
41
|
bundler
|
42
42
|
rake
|
@@ -57,7 +57,7 @@ GEM
|
|
57
57
|
rack-test (>= 0.5.4)
|
58
58
|
selenium-webdriver (~> 2.0)
|
59
59
|
xpath (~> 0.1.4)
|
60
|
-
childprocess (0.3.
|
60
|
+
childprocess (0.3.5)
|
61
61
|
ffi (~> 1.0, >= 1.0.6)
|
62
62
|
cucumber (1.2.1)
|
63
63
|
builder (>= 2.1.2)
|
@@ -79,12 +79,12 @@ GEM
|
|
79
79
|
factory_girl_rails (3.5.0)
|
80
80
|
factory_girl (~> 3.5.0)
|
81
81
|
railties (>= 3.0.0)
|
82
|
-
ffi (1.1.
|
83
|
-
gherkin (2.11.
|
82
|
+
ffi (1.1.5)
|
83
|
+
gherkin (2.11.2)
|
84
84
|
json (>= 1.4.6)
|
85
85
|
i18n (0.5.0)
|
86
|
-
json (1.7.
|
87
|
-
libwebsocket (0.1.
|
86
|
+
json (1.7.5)
|
87
|
+
libwebsocket (0.1.5)
|
88
88
|
addressable
|
89
89
|
mail (2.2.19)
|
90
90
|
activesupport (>= 2.3.6)
|
@@ -103,17 +103,17 @@ GEM
|
|
103
103
|
rack (>= 1.0.0)
|
104
104
|
rack-test (0.5.7)
|
105
105
|
rack (>= 1.0)
|
106
|
-
rails (3.0.
|
107
|
-
actionmailer (= 3.0.
|
108
|
-
actionpack (= 3.0.
|
109
|
-
activerecord (= 3.0.
|
110
|
-
activeresource (= 3.0.
|
111
|
-
activesupport (= 3.0.
|
106
|
+
rails (3.0.17)
|
107
|
+
actionmailer (= 3.0.17)
|
108
|
+
actionpack (= 3.0.17)
|
109
|
+
activerecord (= 3.0.17)
|
110
|
+
activeresource (= 3.0.17)
|
111
|
+
activesupport (= 3.0.17)
|
112
112
|
bundler (~> 1.0)
|
113
|
-
railties (= 3.0.
|
114
|
-
railties (3.0.
|
115
|
-
actionpack (= 3.0.
|
116
|
-
activesupport (= 3.0.
|
113
|
+
railties (= 3.0.17)
|
114
|
+
railties (3.0.17)
|
115
|
+
actionpack (= 3.0.17)
|
116
|
+
activesupport (= 3.0.17)
|
117
117
|
rake (>= 0.8.7)
|
118
118
|
rdoc (~> 3.4)
|
119
119
|
thor (~> 0.14.4)
|
@@ -125,9 +125,9 @@ GEM
|
|
125
125
|
rspec-expectations (~> 2.11.0)
|
126
126
|
rspec-mocks (~> 2.11.0)
|
127
127
|
rspec-core (2.11.1)
|
128
|
-
rspec-expectations (2.11.
|
128
|
+
rspec-expectations (2.11.3)
|
129
129
|
diff-lcs (~> 1.1.3)
|
130
|
-
rspec-mocks (2.11.
|
130
|
+
rspec-mocks (2.11.2)
|
131
131
|
rspec-rails (2.11.0)
|
132
132
|
actionpack (>= 3.0)
|
133
133
|
activesupport (>= 3.0)
|
@@ -158,13 +158,13 @@ DEPENDENCIES
|
|
158
158
|
appraisal (= 0.4.1)
|
159
159
|
aruba (= 0.4.11)
|
160
160
|
bourne (= 1.1.2)
|
161
|
-
bundler (
|
161
|
+
bundler (~> 1.2.0)
|
162
162
|
capybara (= 1.1.2)
|
163
163
|
clearance!
|
164
164
|
cucumber-rails (= 1.1.1)
|
165
165
|
database_cleaner (= 0.8.0)
|
166
166
|
factory_girl_rails (= 3.5.0)
|
167
|
-
rails (= 3.0.
|
167
|
+
rails (= 3.0.17)
|
168
168
|
rspec-rails (= 2.11.0)
|
169
169
|
shoulda-matchers (= 1.2.0)
|
170
170
|
sqlite3 (= 1.3.6)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
|
-
remote: /
|
2
|
+
remote: /Users/croaky/dev/clearance
|
3
3
|
specs:
|
4
|
-
clearance (1.0.0.
|
4
|
+
clearance (1.0.0.rc2)
|
5
5
|
bcrypt-ruby
|
6
6
|
diesel (= 0.1.5)
|
7
7
|
rails (>= 3.0)
|
@@ -9,12 +9,12 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: http://rubygems.org/
|
11
11
|
specs:
|
12
|
-
actionmailer (3.1.
|
13
|
-
actionpack (= 3.1.
|
12
|
+
actionmailer (3.1.8)
|
13
|
+
actionpack (= 3.1.8)
|
14
14
|
mail (~> 2.3.3)
|
15
|
-
actionpack (3.1.
|
16
|
-
activemodel (= 3.1.
|
17
|
-
activesupport (= 3.1.
|
15
|
+
actionpack (3.1.8)
|
16
|
+
activemodel (= 3.1.8)
|
17
|
+
activesupport (= 3.1.8)
|
18
18
|
builder (~> 3.0.0)
|
19
19
|
erubis (~> 2.7.0)
|
20
20
|
i18n (~> 0.6)
|
@@ -23,21 +23,21 @@ GEM
|
|
23
23
|
rack-mount (~> 0.8.2)
|
24
24
|
rack-test (~> 0.6.1)
|
25
25
|
sprockets (~> 2.0.4)
|
26
|
-
activemodel (3.1.
|
27
|
-
activesupport (= 3.1.
|
26
|
+
activemodel (3.1.8)
|
27
|
+
activesupport (= 3.1.8)
|
28
28
|
builder (~> 3.0.0)
|
29
29
|
i18n (~> 0.6)
|
30
|
-
activerecord (3.1.
|
31
|
-
activemodel (= 3.1.
|
32
|
-
activesupport (= 3.1.
|
30
|
+
activerecord (3.1.8)
|
31
|
+
activemodel (= 3.1.8)
|
32
|
+
activesupport (= 3.1.8)
|
33
33
|
arel (~> 2.2.3)
|
34
34
|
tzinfo (~> 0.3.29)
|
35
|
-
activeresource (3.1.
|
36
|
-
activemodel (= 3.1.
|
37
|
-
activesupport (= 3.1.
|
38
|
-
activesupport (3.1.
|
35
|
+
activeresource (3.1.8)
|
36
|
+
activemodel (= 3.1.8)
|
37
|
+
activesupport (= 3.1.8)
|
38
|
+
activesupport (3.1.8)
|
39
39
|
multi_json (>= 1.0, < 1.3)
|
40
|
-
addressable (2.3.
|
40
|
+
addressable (2.3.2)
|
41
41
|
appraisal (0.4.1)
|
42
42
|
bundler
|
43
43
|
rake
|
@@ -50,7 +50,7 @@ GEM
|
|
50
50
|
bcrypt-ruby (3.0.1)
|
51
51
|
bourne (1.1.2)
|
52
52
|
mocha (= 0.10.5)
|
53
|
-
builder (3.0.
|
53
|
+
builder (3.0.3)
|
54
54
|
capybara (1.1.2)
|
55
55
|
mime-types (>= 1.16)
|
56
56
|
nokogiri (>= 1.3.3)
|
@@ -58,7 +58,7 @@ GEM
|
|
58
58
|
rack-test (>= 0.5.4)
|
59
59
|
selenium-webdriver (~> 2.0)
|
60
60
|
xpath (~> 0.1.4)
|
61
|
-
childprocess (0.3.
|
61
|
+
childprocess (0.3.5)
|
62
62
|
ffi (~> 1.0, >= 1.0.6)
|
63
63
|
cucumber (1.2.1)
|
64
64
|
builder (>= 2.1.2)
|
@@ -79,13 +79,13 @@ GEM
|
|
79
79
|
factory_girl_rails (3.5.0)
|
80
80
|
factory_girl (~> 3.5.0)
|
81
81
|
railties (>= 3.0.0)
|
82
|
-
ffi (1.1.
|
83
|
-
gherkin (2.11.
|
82
|
+
ffi (1.1.5)
|
83
|
+
gherkin (2.11.2)
|
84
84
|
json (>= 1.4.6)
|
85
85
|
hike (1.2.1)
|
86
|
-
i18n (0.6.
|
87
|
-
json (1.7.
|
88
|
-
libwebsocket (0.1.
|
86
|
+
i18n (0.6.1)
|
87
|
+
json (1.7.5)
|
88
|
+
libwebsocket (0.1.5)
|
89
89
|
addressable
|
90
90
|
mail (2.3.3)
|
91
91
|
i18n (>= 0.4.0)
|
@@ -107,17 +107,17 @@ GEM
|
|
107
107
|
rack
|
108
108
|
rack-test (0.6.1)
|
109
109
|
rack (>= 1.0)
|
110
|
-
rails (3.1.
|
111
|
-
actionmailer (= 3.1.
|
112
|
-
actionpack (= 3.1.
|
113
|
-
activerecord (= 3.1.
|
114
|
-
activeresource (= 3.1.
|
115
|
-
activesupport (= 3.1.
|
110
|
+
rails (3.1.8)
|
111
|
+
actionmailer (= 3.1.8)
|
112
|
+
actionpack (= 3.1.8)
|
113
|
+
activerecord (= 3.1.8)
|
114
|
+
activeresource (= 3.1.8)
|
115
|
+
activesupport (= 3.1.8)
|
116
116
|
bundler (~> 1.0)
|
117
|
-
railties (= 3.1.
|
118
|
-
railties (3.1.
|
119
|
-
actionpack (= 3.1.
|
120
|
-
activesupport (= 3.1.
|
117
|
+
railties (= 3.1.8)
|
118
|
+
railties (3.1.8)
|
119
|
+
actionpack (= 3.1.8)
|
120
|
+
activesupport (= 3.1.8)
|
121
121
|
rack-ssl (~> 1.3.2)
|
122
122
|
rake (>= 0.8.7)
|
123
123
|
rdoc (~> 3.4)
|
@@ -130,9 +130,9 @@ GEM
|
|
130
130
|
rspec-expectations (~> 2.11.0)
|
131
131
|
rspec-mocks (~> 2.11.0)
|
132
132
|
rspec-core (2.11.1)
|
133
|
-
rspec-expectations (2.11.
|
133
|
+
rspec-expectations (2.11.3)
|
134
134
|
diff-lcs (~> 1.1.3)
|
135
|
-
rspec-mocks (2.11.
|
135
|
+
rspec-mocks (2.11.2)
|
136
136
|
rspec-rails (2.11.0)
|
137
137
|
actionpack (>= 3.0)
|
138
138
|
activesupport (>= 3.0)
|
@@ -168,13 +168,13 @@ DEPENDENCIES
|
|
168
168
|
appraisal (= 0.4.1)
|
169
169
|
aruba (= 0.4.11)
|
170
170
|
bourne (= 1.1.2)
|
171
|
-
bundler (
|
171
|
+
bundler (~> 1.2.0)
|
172
172
|
capybara (= 1.1.2)
|
173
173
|
clearance!
|
174
174
|
cucumber-rails (= 1.1.1)
|
175
175
|
database_cleaner (= 0.8.0)
|
176
176
|
factory_girl_rails (= 3.5.0)
|
177
|
-
rails (= 3.1.
|
177
|
+
rails (= 3.1.8)
|
178
178
|
rspec-rails (= 2.11.0)
|
179
179
|
shoulda-matchers (= 1.2.0)
|
180
180
|
sqlite3 (= 1.3.6)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
|
-
remote: /
|
2
|
+
remote: /Users/croaky/dev/clearance
|
3
3
|
specs:
|
4
|
-
clearance (1.0.0.
|
4
|
+
clearance (1.0.0.rc2)
|
5
5
|
bcrypt-ruby
|
6
6
|
diesel (= 0.1.5)
|
7
7
|
rails (>= 3.0)
|
@@ -9,34 +9,34 @@ PATH
|
|
9
9
|
GEM
|
10
10
|
remote: http://rubygems.org/
|
11
11
|
specs:
|
12
|
-
actionmailer (3.2.
|
13
|
-
actionpack (= 3.2.
|
12
|
+
actionmailer (3.2.8)
|
13
|
+
actionpack (= 3.2.8)
|
14
14
|
mail (~> 2.4.4)
|
15
|
-
actionpack (3.2.
|
16
|
-
activemodel (= 3.2.
|
17
|
-
activesupport (= 3.2.
|
15
|
+
actionpack (3.2.8)
|
16
|
+
activemodel (= 3.2.8)
|
17
|
+
activesupport (= 3.2.8)
|
18
18
|
builder (~> 3.0.0)
|
19
19
|
erubis (~> 2.7.0)
|
20
|
-
journey (~> 1.0.
|
20
|
+
journey (~> 1.0.4)
|
21
21
|
rack (~> 1.4.0)
|
22
22
|
rack-cache (~> 1.2)
|
23
23
|
rack-test (~> 0.6.1)
|
24
24
|
sprockets (~> 2.1.3)
|
25
|
-
activemodel (3.2.
|
26
|
-
activesupport (= 3.2.
|
25
|
+
activemodel (3.2.8)
|
26
|
+
activesupport (= 3.2.8)
|
27
27
|
builder (~> 3.0.0)
|
28
|
-
activerecord (3.2.
|
29
|
-
activemodel (= 3.2.
|
30
|
-
activesupport (= 3.2.
|
28
|
+
activerecord (3.2.8)
|
29
|
+
activemodel (= 3.2.8)
|
30
|
+
activesupport (= 3.2.8)
|
31
31
|
arel (~> 3.0.2)
|
32
32
|
tzinfo (~> 0.3.29)
|
33
|
-
activeresource (3.2.
|
34
|
-
activemodel (= 3.2.
|
35
|
-
activesupport (= 3.2.
|
36
|
-
activesupport (3.2.
|
33
|
+
activeresource (3.2.8)
|
34
|
+
activemodel (= 3.2.8)
|
35
|
+
activesupport (= 3.2.8)
|
36
|
+
activesupport (3.2.8)
|
37
37
|
i18n (~> 0.6)
|
38
38
|
multi_json (~> 1.0)
|
39
|
-
addressable (2.3.
|
39
|
+
addressable (2.3.2)
|
40
40
|
appraisal (0.4.1)
|
41
41
|
bundler
|
42
42
|
rake
|
@@ -49,7 +49,7 @@ GEM
|
|
49
49
|
bcrypt-ruby (3.0.1)
|
50
50
|
bourne (1.1.2)
|
51
51
|
mocha (= 0.10.5)
|
52
|
-
builder (3.0.
|
52
|
+
builder (3.0.3)
|
53
53
|
capybara (1.1.2)
|
54
54
|
mime-types (>= 1.16)
|
55
55
|
nokogiri (>= 1.3.3)
|
@@ -57,7 +57,7 @@ GEM
|
|
57
57
|
rack-test (>= 0.5.4)
|
58
58
|
selenium-webdriver (~> 2.0)
|
59
59
|
xpath (~> 0.1.4)
|
60
|
-
childprocess (0.3.
|
60
|
+
childprocess (0.3.5)
|
61
61
|
ffi (~> 1.0, >= 1.0.6)
|
62
62
|
cucumber (1.2.1)
|
63
63
|
builder (>= 2.1.2)
|
@@ -78,14 +78,14 @@ GEM
|
|
78
78
|
factory_girl_rails (3.5.0)
|
79
79
|
factory_girl (~> 3.5.0)
|
80
80
|
railties (>= 3.0.0)
|
81
|
-
ffi (1.1.
|
82
|
-
gherkin (2.11.
|
81
|
+
ffi (1.1.5)
|
82
|
+
gherkin (2.11.2)
|
83
83
|
json (>= 1.4.6)
|
84
84
|
hike (1.2.1)
|
85
|
-
i18n (0.6.
|
85
|
+
i18n (0.6.1)
|
86
86
|
journey (1.0.4)
|
87
|
-
json (1.7.
|
88
|
-
libwebsocket (0.1.
|
87
|
+
json (1.7.5)
|
88
|
+
libwebsocket (0.1.5)
|
89
89
|
addressable
|
90
90
|
mail (2.4.4)
|
91
91
|
i18n (>= 0.4.0)
|
@@ -105,17 +105,17 @@ GEM
|
|
105
105
|
rack
|
106
106
|
rack-test (0.6.1)
|
107
107
|
rack (>= 1.0)
|
108
|
-
rails (3.2.
|
109
|
-
actionmailer (= 3.2.
|
110
|
-
actionpack (= 3.2.
|
111
|
-
activerecord (= 3.2.
|
112
|
-
activeresource (= 3.2.
|
113
|
-
activesupport (= 3.2.
|
108
|
+
rails (3.2.8)
|
109
|
+
actionmailer (= 3.2.8)
|
110
|
+
actionpack (= 3.2.8)
|
111
|
+
activerecord (= 3.2.8)
|
112
|
+
activeresource (= 3.2.8)
|
113
|
+
activesupport (= 3.2.8)
|
114
114
|
bundler (~> 1.0)
|
115
|
-
railties (= 3.2.
|
116
|
-
railties (3.2.
|
117
|
-
actionpack (= 3.2.
|
118
|
-
activesupport (= 3.2.
|
115
|
+
railties (= 3.2.8)
|
116
|
+
railties (3.2.8)
|
117
|
+
actionpack (= 3.2.8)
|
118
|
+
activesupport (= 3.2.8)
|
119
119
|
rack-ssl (~> 1.3.2)
|
120
120
|
rake (>= 0.8.7)
|
121
121
|
rdoc (~> 3.4)
|
@@ -128,9 +128,9 @@ GEM
|
|
128
128
|
rspec-expectations (~> 2.11.0)
|
129
129
|
rspec-mocks (~> 2.11.0)
|
130
130
|
rspec-core (2.11.1)
|
131
|
-
rspec-expectations (2.11.
|
131
|
+
rspec-expectations (2.11.3)
|
132
132
|
diff-lcs (~> 1.1.3)
|
133
|
-
rspec-mocks (2.11.
|
133
|
+
rspec-mocks (2.11.2)
|
134
134
|
rspec-rails (2.11.0)
|
135
135
|
actionpack (>= 3.0)
|
136
136
|
activesupport (>= 3.0)
|
@@ -149,7 +149,7 @@ GEM
|
|
149
149
|
rack (~> 1.0)
|
150
150
|
tilt (~> 1.1, != 1.3.0)
|
151
151
|
sqlite3 (1.3.6)
|
152
|
-
thor (0.
|
152
|
+
thor (0.16.0)
|
153
153
|
tilt (1.3.3)
|
154
154
|
timecop (0.3.5)
|
155
155
|
treetop (1.4.10)
|
@@ -166,13 +166,13 @@ DEPENDENCIES
|
|
166
166
|
appraisal (= 0.4.1)
|
167
167
|
aruba (= 0.4.11)
|
168
168
|
bourne (= 1.1.2)
|
169
|
-
bundler (
|
169
|
+
bundler (~> 1.2.0)
|
170
170
|
capybara (= 1.1.2)
|
171
171
|
clearance!
|
172
172
|
cucumber-rails (= 1.1.1)
|
173
173
|
database_cleaner (= 0.8.0)
|
174
174
|
factory_girl_rails (= 3.5.0)
|
175
|
-
rails (= 3.2.
|
175
|
+
rails (= 3.2.8)
|
176
176
|
rspec-rails (= 2.11.0)
|
177
177
|
shoulda-matchers (= 1.2.0)
|
178
178
|
sqlite3 (= 1.3.6)
|
@@ -26,13 +26,18 @@ module Clearance
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def password=(new_password)
|
29
|
+
@password = new_password
|
29
30
|
BCryptUser.new(self).password = new_password
|
30
31
|
end
|
31
32
|
|
32
33
|
private
|
33
34
|
|
34
35
|
def authenticated_with_bcrypt?(password)
|
35
|
-
|
36
|
+
begin
|
37
|
+
BCryptUser.new(self).authenticated? password
|
38
|
+
rescue ::BCrypt::Errors::InvalidHash
|
39
|
+
false
|
40
|
+
end
|
36
41
|
end
|
37
42
|
|
38
43
|
def authenticated_with_sha1?(password)
|
data/lib/clearance/version.rb
CHANGED
@@ -3,6 +3,7 @@ require 'spec_helper'
|
|
3
3
|
describe Clearance::PasswordStrategies::BCryptMigrationFromSHA1 do
|
4
4
|
subject do
|
5
5
|
Class.new do
|
6
|
+
attr_reader :password
|
6
7
|
attr_accessor :encrypted_password
|
7
8
|
attr_accessor :salt
|
8
9
|
include Clearance::PasswordStrategies::BCryptMigrationFromSHA1
|
@@ -28,6 +29,11 @@ describe Clearance::PasswordStrategies::BCryptMigrationFromSHA1 do
|
|
28
29
|
it 'encrypts with BCrypt' do
|
29
30
|
BCrypt::Password.should have_received(:create).with(password)
|
30
31
|
end
|
32
|
+
|
33
|
+
it 'sets the pasword on the subject' do
|
34
|
+
subject.password.should be_present
|
35
|
+
end
|
36
|
+
|
31
37
|
end
|
32
38
|
|
33
39
|
describe '#authenticated?' do
|
@@ -49,6 +55,12 @@ describe Clearance::PasswordStrategies::BCryptMigrationFromSHA1 do
|
|
49
55
|
subject.authenticated? password
|
50
56
|
subject.encrypted_password.should_not == sha1_hash
|
51
57
|
end
|
58
|
+
|
59
|
+
it 'does not raise a BCrypt error for invalid passwords' do
|
60
|
+
lambda {
|
61
|
+
subject.authenticated? 'bad' + password
|
62
|
+
}.should_not raise_error(BCrypt::Errors::InvalidHash)
|
63
|
+
end
|
52
64
|
end
|
53
65
|
|
54
66
|
context 'with a BCrypt-encrypted password' do
|
@@ -68,4 +80,5 @@ describe Clearance::PasswordStrategies::BCryptMigrationFromSHA1 do
|
|
68
80
|
end
|
69
81
|
end
|
70
82
|
end
|
83
|
+
|
71
84
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clearance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0.
|
4
|
+
version: 1.0.0.rc2
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -18,11 +18,11 @@ authors:
|
|
18
18
|
autorequire:
|
19
19
|
bindir: bin
|
20
20
|
cert_chain: []
|
21
|
-
date: 2012-
|
21
|
+
date: 2012-09-20 00:00:00.000000000 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: bcrypt-ruby
|
25
|
-
requirement:
|
25
|
+
requirement: !ruby/object:Gem::Requirement
|
26
26
|
none: false
|
27
27
|
requirements:
|
28
28
|
- - ! '>='
|
@@ -30,21 +30,31 @@ dependencies:
|
|
30
30
|
version: '0'
|
31
31
|
type: :runtime
|
32
32
|
prerelease: false
|
33
|
-
version_requirements:
|
33
|
+
version_requirements: !ruby/object:Gem::Requirement
|
34
|
+
none: false
|
35
|
+
requirements:
|
36
|
+
- - ! '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
34
39
|
- !ruby/object:Gem::Dependency
|
35
40
|
name: diesel
|
36
|
-
requirement:
|
41
|
+
requirement: !ruby/object:Gem::Requirement
|
37
42
|
none: false
|
38
43
|
requirements:
|
39
|
-
- - =
|
44
|
+
- - '='
|
40
45
|
- !ruby/object:Gem::Version
|
41
46
|
version: 0.1.5
|
42
47
|
type: :runtime
|
43
48
|
prerelease: false
|
44
|
-
version_requirements:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - '='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.1.5
|
45
55
|
- !ruby/object:Gem::Dependency
|
46
56
|
name: rails
|
47
|
-
requirement:
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
48
58
|
none: false
|
49
59
|
requirements:
|
50
60
|
- - ! '>='
|
@@ -52,139 +62,204 @@ dependencies:
|
|
52
62
|
version: '3.0'
|
53
63
|
type: :runtime
|
54
64
|
prerelease: false
|
55
|
-
version_requirements:
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ! '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '3.0'
|
56
71
|
- !ruby/object:Gem::Dependency
|
57
72
|
name: appraisal
|
58
|
-
requirement:
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
59
74
|
none: false
|
60
75
|
requirements:
|
61
|
-
- - =
|
76
|
+
- - '='
|
62
77
|
- !ruby/object:Gem::Version
|
63
78
|
version: 0.4.1
|
64
79
|
type: :development
|
65
80
|
prerelease: false
|
66
|
-
version_requirements:
|
81
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
|
+
none: false
|
83
|
+
requirements:
|
84
|
+
- - '='
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 0.4.1
|
67
87
|
- !ruby/object:Gem::Dependency
|
68
88
|
name: aruba
|
69
|
-
requirement:
|
89
|
+
requirement: !ruby/object:Gem::Requirement
|
70
90
|
none: false
|
71
91
|
requirements:
|
72
|
-
- - =
|
92
|
+
- - '='
|
73
93
|
- !ruby/object:Gem::Version
|
74
94
|
version: 0.4.11
|
75
95
|
type: :development
|
76
96
|
prerelease: false
|
77
|
-
version_requirements:
|
97
|
+
version_requirements: !ruby/object:Gem::Requirement
|
98
|
+
none: false
|
99
|
+
requirements:
|
100
|
+
- - '='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: 0.4.11
|
78
103
|
- !ruby/object:Gem::Dependency
|
79
104
|
name: bourne
|
80
|
-
requirement:
|
105
|
+
requirement: !ruby/object:Gem::Requirement
|
81
106
|
none: false
|
82
107
|
requirements:
|
83
|
-
- - =
|
108
|
+
- - '='
|
84
109
|
- !ruby/object:Gem::Version
|
85
110
|
version: 1.1.2
|
86
111
|
type: :development
|
87
112
|
prerelease: false
|
88
|
-
version_requirements:
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
114
|
+
none: false
|
115
|
+
requirements:
|
116
|
+
- - '='
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 1.1.2
|
89
119
|
- !ruby/object:Gem::Dependency
|
90
120
|
name: bundler
|
91
|
-
requirement:
|
121
|
+
requirement: !ruby/object:Gem::Requirement
|
92
122
|
none: false
|
93
123
|
requirements:
|
94
|
-
- -
|
124
|
+
- - ~>
|
95
125
|
- !ruby/object:Gem::Version
|
96
|
-
version: 1.
|
126
|
+
version: 1.2.0
|
97
127
|
type: :development
|
98
128
|
prerelease: false
|
99
|
-
version_requirements:
|
129
|
+
version_requirements: !ruby/object:Gem::Requirement
|
130
|
+
none: false
|
131
|
+
requirements:
|
132
|
+
- - ~>
|
133
|
+
- !ruby/object:Gem::Version
|
134
|
+
version: 1.2.0
|
100
135
|
- !ruby/object:Gem::Dependency
|
101
136
|
name: capybara
|
102
|
-
requirement:
|
137
|
+
requirement: !ruby/object:Gem::Requirement
|
103
138
|
none: false
|
104
139
|
requirements:
|
105
|
-
- - =
|
140
|
+
- - '='
|
106
141
|
- !ruby/object:Gem::Version
|
107
142
|
version: 1.1.2
|
108
143
|
type: :development
|
109
144
|
prerelease: false
|
110
|
-
version_requirements:
|
145
|
+
version_requirements: !ruby/object:Gem::Requirement
|
146
|
+
none: false
|
147
|
+
requirements:
|
148
|
+
- - '='
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 1.1.2
|
111
151
|
- !ruby/object:Gem::Dependency
|
112
152
|
name: cucumber-rails
|
113
|
-
requirement:
|
153
|
+
requirement: !ruby/object:Gem::Requirement
|
114
154
|
none: false
|
115
155
|
requirements:
|
116
|
-
- - =
|
156
|
+
- - '='
|
117
157
|
- !ruby/object:Gem::Version
|
118
158
|
version: 1.1.1
|
119
159
|
type: :development
|
120
160
|
prerelease: false
|
121
|
-
version_requirements:
|
161
|
+
version_requirements: !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 1.1.1
|
122
167
|
- !ruby/object:Gem::Dependency
|
123
168
|
name: database_cleaner
|
124
|
-
requirement:
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
125
170
|
none: false
|
126
171
|
requirements:
|
127
|
-
- - =
|
172
|
+
- - '='
|
128
173
|
- !ruby/object:Gem::Version
|
129
174
|
version: 0.8.0
|
130
175
|
type: :development
|
131
176
|
prerelease: false
|
132
|
-
version_requirements:
|
177
|
+
version_requirements: !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
179
|
+
requirements:
|
180
|
+
- - '='
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: 0.8.0
|
133
183
|
- !ruby/object:Gem::Dependency
|
134
184
|
name: factory_girl_rails
|
135
|
-
requirement:
|
185
|
+
requirement: !ruby/object:Gem::Requirement
|
136
186
|
none: false
|
137
187
|
requirements:
|
138
|
-
- - =
|
188
|
+
- - '='
|
139
189
|
- !ruby/object:Gem::Version
|
140
190
|
version: 3.5.0
|
141
191
|
type: :development
|
142
192
|
prerelease: false
|
143
|
-
version_requirements:
|
193
|
+
version_requirements: !ruby/object:Gem::Requirement
|
194
|
+
none: false
|
195
|
+
requirements:
|
196
|
+
- - '='
|
197
|
+
- !ruby/object:Gem::Version
|
198
|
+
version: 3.5.0
|
144
199
|
- !ruby/object:Gem::Dependency
|
145
200
|
name: rspec-rails
|
146
|
-
requirement:
|
201
|
+
requirement: !ruby/object:Gem::Requirement
|
147
202
|
none: false
|
148
203
|
requirements:
|
149
|
-
- - =
|
204
|
+
- - '='
|
150
205
|
- !ruby/object:Gem::Version
|
151
206
|
version: 2.11.0
|
152
207
|
type: :development
|
153
208
|
prerelease: false
|
154
|
-
version_requirements:
|
209
|
+
version_requirements: !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
211
|
+
requirements:
|
212
|
+
- - '='
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
version: 2.11.0
|
155
215
|
- !ruby/object:Gem::Dependency
|
156
216
|
name: shoulda-matchers
|
157
|
-
requirement:
|
217
|
+
requirement: !ruby/object:Gem::Requirement
|
158
218
|
none: false
|
159
219
|
requirements:
|
160
|
-
- - =
|
220
|
+
- - '='
|
161
221
|
- !ruby/object:Gem::Version
|
162
222
|
version: 1.2.0
|
163
223
|
type: :development
|
164
224
|
prerelease: false
|
165
|
-
version_requirements:
|
225
|
+
version_requirements: !ruby/object:Gem::Requirement
|
226
|
+
none: false
|
227
|
+
requirements:
|
228
|
+
- - '='
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: 1.2.0
|
166
231
|
- !ruby/object:Gem::Dependency
|
167
232
|
name: sqlite3
|
168
|
-
requirement:
|
233
|
+
requirement: !ruby/object:Gem::Requirement
|
169
234
|
none: false
|
170
235
|
requirements:
|
171
|
-
- - =
|
236
|
+
- - '='
|
172
237
|
- !ruby/object:Gem::Version
|
173
238
|
version: 1.3.6
|
174
239
|
type: :development
|
175
240
|
prerelease: false
|
176
|
-
version_requirements:
|
241
|
+
version_requirements: !ruby/object:Gem::Requirement
|
242
|
+
none: false
|
243
|
+
requirements:
|
244
|
+
- - '='
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: 1.3.6
|
177
247
|
- !ruby/object:Gem::Dependency
|
178
248
|
name: timecop
|
179
|
-
requirement:
|
249
|
+
requirement: !ruby/object:Gem::Requirement
|
180
250
|
none: false
|
181
251
|
requirements:
|
182
|
-
- - =
|
252
|
+
- - '='
|
183
253
|
- !ruby/object:Gem::Version
|
184
254
|
version: 0.3.5
|
185
255
|
type: :development
|
186
256
|
prerelease: false
|
187
|
-
version_requirements:
|
257
|
+
version_requirements: !ruby/object:Gem::Requirement
|
258
|
+
none: false
|
259
|
+
requirements:
|
260
|
+
- - '='
|
261
|
+
- !ruby/object:Gem::Version
|
262
|
+
version: 0.3.5
|
188
263
|
description: Rails authentication & authorization with email & password.
|
189
264
|
email: support@thoughtbot.com
|
190
265
|
executables: []
|
@@ -233,12 +308,12 @@ files:
|
|
233
308
|
- features/support/aruba.rb
|
234
309
|
- features/support/clearance.rb
|
235
310
|
- features/support/env.rb
|
236
|
-
- gemfiles/3.0.
|
237
|
-
- gemfiles/3.0.
|
238
|
-
- gemfiles/3.1.
|
239
|
-
- gemfiles/3.1.
|
240
|
-
- gemfiles/3.2.
|
241
|
-
- gemfiles/3.2.
|
311
|
+
- gemfiles/3.0.17.gemfile
|
312
|
+
- gemfiles/3.0.17.gemfile.lock
|
313
|
+
- gemfiles/3.1.8.gemfile
|
314
|
+
- gemfiles/3.1.8.gemfile.lock
|
315
|
+
- gemfiles/3.2.8.gemfile
|
316
|
+
- gemfiles/3.2.8.gemfile.lock
|
242
317
|
- lib/clearance.rb
|
243
318
|
- lib/clearance/authentication.rb
|
244
319
|
- lib/clearance/configuration.rb
|
@@ -311,8 +386,42 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
311
386
|
version: 1.3.1
|
312
387
|
requirements: []
|
313
388
|
rubyforge_project:
|
314
|
-
rubygems_version: 1.8.
|
389
|
+
rubygems_version: 1.8.24
|
315
390
|
signing_key:
|
316
391
|
specification_version: 3
|
317
392
|
summary: Rails authentication & authorization with email & password.
|
318
|
-
test_files:
|
393
|
+
test_files:
|
394
|
+
- features/engine/visitor_resets_password.feature
|
395
|
+
- features/engine/visitor_signs_in.feature
|
396
|
+
- features/engine/visitor_signs_out.feature
|
397
|
+
- features/engine/visitor_signs_up.feature
|
398
|
+
- features/integration.feature
|
399
|
+
- features/integration_with_test_unit.feature
|
400
|
+
- features/step_definitions/configuration_steps.rb
|
401
|
+
- features/step_definitions/engine/clearance_steps.rb
|
402
|
+
- features/support/aruba.rb
|
403
|
+
- features/support/clearance.rb
|
404
|
+
- features/support/env.rb
|
405
|
+
- spec/clearance/constraints/signed_in_spec.rb
|
406
|
+
- spec/clearance/constraints/signed_out_spec.rb
|
407
|
+
- spec/clearance/rack_session_spec.rb
|
408
|
+
- spec/clearance/session_spec.rb
|
409
|
+
- spec/configuration_spec.rb
|
410
|
+
- spec/controllers/denies_controller_spec.rb
|
411
|
+
- spec/controllers/flashes_controller_spec.rb
|
412
|
+
- spec/controllers/forgeries_controller_spec.rb
|
413
|
+
- spec/controllers/passwords_controller_spec.rb
|
414
|
+
- spec/controllers/sessions_controller_spec.rb
|
415
|
+
- spec/controllers/users_controller_spec.rb
|
416
|
+
- spec/factories.rb
|
417
|
+
- spec/mailers/clearance_mailer_spec.rb
|
418
|
+
- spec/models/bcrypt_migration_from_sha1_spec.rb
|
419
|
+
- spec/models/bcrypt_spec.rb
|
420
|
+
- spec/models/blowfish_spec.rb
|
421
|
+
- spec/models/password_strategies_spec.rb
|
422
|
+
- spec/models/sha1_spec.rb
|
423
|
+
- spec/models/user_spec.rb
|
424
|
+
- spec/spec_helper.rb
|
425
|
+
- spec/support/clearance.rb
|
426
|
+
- spec/support/cookies.rb
|
427
|
+
- spec/support/request_with_remember_token.rb
|