clearance 1.0.0.rc4 → 1.0.0.rc6
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.
- checksums.yaml +15 -0
- data/.travis.yml +14 -3
- data/Appraisals +7 -1
- data/Gemfile.lock +33 -26
- data/LICENSE +1 -1
- data/NEWS.md +13 -10
- data/README.md +44 -37
- data/Rakefile +3 -0
- data/app/controllers/clearance/passwords_controller.rb +6 -2
- data/app/views/clearance_mailer/change_password.html.erb +2 -2
- data/app/views/passwords/create.html.erb +3 -1
- data/app/views/passwords/edit.html.erb +15 -13
- data/app/views/passwords/new.html.erb +13 -11
- data/app/views/sessions/_form.html.erb +8 -3
- data/app/views/sessions/new.html.erb +4 -11
- data/app/views/users/_form.html.erb +2 -2
- data/app/views/users/new.html.erb +14 -5
- data/clearance.gemspec +5 -3
- data/config/locales/clearance.en.yml +53 -23
- data/config/routes.rb +3 -3
- data/gemfiles/{3.0.17.gemfile → 3.0.20.gemfile} +1 -1
- data/gemfiles/{3.0.17.gemfile.lock → 3.0.20.gemfile.lock} +62 -57
- data/gemfiles/{3.2.8.gemfile → 3.1.11.gemfile} +1 -1
- data/gemfiles/{3.1.8.gemfile.lock → 3.1.11.gemfile.lock} +70 -65
- data/gemfiles/{3.1.8.gemfile → 3.2.12.gemfile} +1 -1
- data/gemfiles/{3.2.8.gemfile.lock → 3.2.12.gemfile.lock} +74 -68
- data/gemfiles/3.2.13.rc2.gemfile +7 -0
- data/gemfiles/3.2.13.rc2.gemfile.lock +182 -0
- data/lib/clearance.rb +2 -1
- data/lib/clearance/authentication.rb +8 -53
- data/lib/clearance/authorization.rb +62 -0
- data/lib/clearance/back_door.rb +42 -0
- data/lib/clearance/controller.rb +11 -0
- data/lib/clearance/password_strategies/bcrypt.rb +13 -1
- data/lib/clearance/password_strategies/bcrypt_migration_from_sha1.rb +1 -0
- data/lib/clearance/password_strategies/blowfish.rb +5 -1
- data/lib/clearance/password_strategies/sha1.rb +5 -1
- data/lib/clearance/testing.rb +1 -1
- data/lib/clearance/testing/app/controllers/application_controller.rb +1 -1
- data/lib/clearance/user.rb +23 -10
- data/lib/clearance/version.rb +1 -1
- data/lib/generators/clearance/install/install_generator.rb +1 -1
- data/lib/generators/clearance/specs/templates/support/integration.rb +2 -0
- data/spec/clearance/back_door_spec.rb +39 -0
- data/spec/controllers/denies_controller_spec.rb +3 -2
- data/spec/controllers/flashes_controller_spec.rb +3 -3
- data/spec/controllers/forgeries_controller_spec.rb +3 -2
- data/spec/controllers/passwords_controller_spec.rb +14 -0
- data/spec/mailers/clearance_mailer_spec.rb +9 -1
- data/spec/models/bcrypt_migration_from_sha1_spec.rb +10 -9
- data/spec/models/bcrypt_spec.rb +21 -7
- data/spec/models/blowfish_spec.rb +1 -6
- data/spec/models/password_strategies_spec.rb +9 -3
- data/spec/models/sha1_spec.rb +1 -6
- data/spec/models/user_spec.rb +19 -9
- data/spec/support/clearance.rb +1 -1
- data/spec/support/fake_model_with_password_strategy.rb +14 -0
- metadata +54 -47
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZWQxMTkxOTgyMzhhZWEzNzFmNTI3YTMzNDdiY2M1NGZiYmU1NDA3Yg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NDA1ZDM3MmQ3NGE2ZDc1NDcyNmQ1NGI4ZGU4OWM0YzEyZmViOTA5OQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZDgxNmZlMDliYTNmMjM3MzIzNWYwMzM1YWUzMGQ2YzMzZDA1OWViYzIyNWI5
|
10
|
+
OGI2MzU1MjVjNWM0ZjhhYTc0YTQ3MDBmZmZhZDE4MDZlZTI4ZjM1ZTlhZWRi
|
11
|
+
ZmJhZjZiZDBkODZiZTNhZTU2ODNjNDFlYTg5ZWNlODMxZDhmMjU=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YzRlNWQwZjQ4NDYzOGYyODU3MWFjZjQ2NmMyNGRhYzZhMGU3YzQ5M2UxOGZj
|
14
|
+
MTFiZjM1ZDc2N2VkNDlkN2EwYTEzODdhMzZlYjg2NzVjYTc4M2ZmYTNmNGRh
|
15
|
+
ZWUyMDQ1ZjE3NTY3OTdlOThmNjI0N2JkZTZmYmZiZTJjZDllMGU=
|
data/.travis.yml
CHANGED
@@ -2,14 +2,25 @@ language: ruby
|
|
2
2
|
rvm:
|
3
3
|
- 1.9.2
|
4
4
|
- 1.9.3
|
5
|
+
- 2.0.0
|
5
6
|
before_install:
|
6
7
|
- gem update --system
|
8
|
+
- gem update bundler
|
7
9
|
before_script:
|
8
10
|
- "bundle exec rake db:migrate"
|
9
11
|
gemfile:
|
10
|
-
- gemfiles/3.0.
|
11
|
-
- gemfiles/3.1.
|
12
|
-
- gemfiles/3.2.
|
12
|
+
- gemfiles/3.0.20.gemfile
|
13
|
+
- gemfiles/3.1.11.gemfile
|
14
|
+
- gemfiles/3.2.12.gemfile
|
15
|
+
- gemfiles/3.2.13.rc2.gemfile
|
16
|
+
matrix:
|
17
|
+
exclude:
|
18
|
+
- rvm: 2.0.0
|
19
|
+
gemfile: gemfiles/3.0.20.gemfile
|
20
|
+
- rvm: 2.0.0
|
21
|
+
gemfile: gemfiles/3.1.11.gemfile
|
22
|
+
- rvm: 2.0.0
|
23
|
+
gemfile: gemfiles/3.2.12.gemfile
|
13
24
|
branches:
|
14
25
|
only:
|
15
26
|
- master
|
data/Appraisals
CHANGED
@@ -1,4 +1,10 @@
|
|
1
|
-
|
1
|
+
if RUBY_VERSION >= '2.0'
|
2
|
+
rails_versions = ['3.2.13.rc2']
|
3
|
+
else
|
4
|
+
rails_versions = ['3.0.20', '3.1.11', '3.2.12']
|
5
|
+
end
|
6
|
+
|
7
|
+
rails_versions.each do |rails_version|
|
2
8
|
appraise "#{rails_version}" do
|
3
9
|
gem 'rails', rails_version
|
4
10
|
end
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
clearance (1.0.0.
|
4
|
+
clearance (1.0.0.rc5)
|
5
5
|
bcrypt-ruby
|
6
|
+
email_validator
|
6
7
|
rails (>= 3.0)
|
7
8
|
|
8
9
|
GEM
|
@@ -46,9 +47,9 @@ GEM
|
|
46
47
|
ffi (>= 1.0.11)
|
47
48
|
rspec (>= 2.7.0)
|
48
49
|
bcrypt-ruby (3.0.1)
|
49
|
-
bourne (1.
|
50
|
-
mocha (= 0.
|
51
|
-
builder (3.0.
|
50
|
+
bourne (1.3.0)
|
51
|
+
mocha (= 0.13.0)
|
52
|
+
builder (3.0.4)
|
52
53
|
capybara (1.1.2)
|
53
54
|
mime-types (>= 1.16)
|
54
55
|
nokogiri (>= 1.3.3)
|
@@ -69,6 +70,8 @@ GEM
|
|
69
70
|
nokogiri (>= 1.5.0)
|
70
71
|
database_cleaner (0.8.0)
|
71
72
|
diff-lcs (1.1.3)
|
73
|
+
email_validator (1.3.0)
|
74
|
+
activemodel
|
72
75
|
erubis (2.7.0)
|
73
76
|
factory_girl (3.5.0)
|
74
77
|
activesupport (>= 3.0.0)
|
@@ -79,9 +82,9 @@ GEM
|
|
79
82
|
gherkin (2.11.1)
|
80
83
|
json (>= 1.4.6)
|
81
84
|
hike (1.2.1)
|
82
|
-
i18n (0.6.
|
85
|
+
i18n (0.6.1)
|
83
86
|
journey (1.0.4)
|
84
|
-
json (1.7.
|
87
|
+
json (1.7.6)
|
85
88
|
libwebsocket (0.1.4)
|
86
89
|
addressable
|
87
90
|
mail (2.4.4)
|
@@ -90,17 +93,18 @@ GEM
|
|
90
93
|
treetop (~> 1.4.8)
|
91
94
|
metaclass (0.0.1)
|
92
95
|
mime-types (1.19)
|
93
|
-
mocha (0.
|
96
|
+
mocha (0.13.0)
|
94
97
|
metaclass (~> 0.0.1)
|
95
|
-
multi_json (1.
|
98
|
+
multi_json (1.5.0)
|
96
99
|
nokogiri (1.5.5)
|
97
100
|
polyglot (0.3.3)
|
98
|
-
|
101
|
+
psych (1.3.4)
|
102
|
+
rack (1.4.4)
|
99
103
|
rack-cache (1.2)
|
100
104
|
rack (>= 0.4)
|
101
|
-
rack-ssl (1.3.
|
105
|
+
rack-ssl (1.3.3)
|
102
106
|
rack
|
103
|
-
rack-test (0.6.
|
107
|
+
rack-test (0.6.2)
|
104
108
|
rack (>= 1.0)
|
105
109
|
rails (3.2.6)
|
106
110
|
actionmailer (= 3.2.6)
|
@@ -117,22 +121,24 @@ GEM
|
|
117
121
|
rake (>= 0.8.7)
|
118
122
|
rdoc (~> 3.4)
|
119
123
|
thor (>= 0.14.6, < 2.0)
|
120
|
-
rake (0.
|
124
|
+
rake (10.0.3)
|
121
125
|
rdoc (3.12)
|
122
126
|
json (~> 1.4)
|
123
|
-
rspec (2.
|
124
|
-
rspec-core (~> 2.
|
125
|
-
rspec-expectations (~> 2.
|
126
|
-
rspec-mocks (~> 2.
|
127
|
-
rspec-core (2.
|
128
|
-
rspec-expectations (2.
|
127
|
+
rspec (2.12.0)
|
128
|
+
rspec-core (~> 2.12.0)
|
129
|
+
rspec-expectations (~> 2.12.0)
|
130
|
+
rspec-mocks (~> 2.12.0)
|
131
|
+
rspec-core (2.12.2)
|
132
|
+
rspec-expectations (2.12.1)
|
129
133
|
diff-lcs (~> 1.1.3)
|
130
|
-
rspec-mocks (2.
|
131
|
-
rspec-rails (2.
|
134
|
+
rspec-mocks (2.12.2)
|
135
|
+
rspec-rails (2.12.2)
|
132
136
|
actionpack (>= 3.0)
|
133
137
|
activesupport (>= 3.0)
|
134
138
|
railties (>= 3.0)
|
135
|
-
rspec (~> 2.
|
139
|
+
rspec-core (~> 2.12.0)
|
140
|
+
rspec-expectations (~> 2.12.0)
|
141
|
+
rspec-mocks (~> 2.12.0)
|
136
142
|
rubyzip (0.9.9)
|
137
143
|
selenium-webdriver (2.25.0)
|
138
144
|
childprocess (>= 0.2.5)
|
@@ -146,13 +152,13 @@ GEM
|
|
146
152
|
rack (~> 1.0)
|
147
153
|
tilt (~> 1.1, != 1.3.0)
|
148
154
|
sqlite3 (1.3.6)
|
149
|
-
thor (0.
|
155
|
+
thor (0.17.0)
|
150
156
|
tilt (1.3.3)
|
151
157
|
timecop (0.3.5)
|
152
158
|
treetop (1.4.12)
|
153
159
|
polyglot
|
154
160
|
polyglot (>= 0.3.1)
|
155
|
-
tzinfo (0.3.
|
161
|
+
tzinfo (0.3.35)
|
156
162
|
xpath (0.1.4)
|
157
163
|
nokogiri (~> 1.3)
|
158
164
|
|
@@ -162,14 +168,15 @@ PLATFORMS
|
|
162
168
|
DEPENDENCIES
|
163
169
|
appraisal (= 0.4.1)
|
164
170
|
aruba (= 0.4.11)
|
165
|
-
bourne (= 1.
|
166
|
-
bundler (~> 1.
|
171
|
+
bourne (= 1.3.0)
|
172
|
+
bundler (~> 1.1)
|
167
173
|
capybara (= 1.1.2)
|
168
174
|
clearance!
|
169
175
|
cucumber-rails (= 1.1.1)
|
170
176
|
database_cleaner (= 0.8.0)
|
171
177
|
factory_girl_rails (= 3.5.0)
|
172
|
-
|
178
|
+
psych (~> 1.3.4)
|
179
|
+
rspec-rails (= 2.12.2)
|
173
180
|
shoulda-matchers (= 1.2.0)
|
174
181
|
sqlite3 (= 1.3.6)
|
175
182
|
timecop (= 0.3.5)
|
data/LICENSE
CHANGED
data/NEWS.md
CHANGED
@@ -1,24 +1,27 @@
|
|
1
1
|
New for 1.0.0:
|
2
2
|
|
3
3
|
* Change default password strategy to BCrypt.
|
4
|
-
*
|
4
|
+
* Speed up test suites using `::BCrypt::Engine::MIN_COST`.
|
5
|
+
* Speed up integration suites with `Clearance::BackDoor`.
|
6
|
+
* Replace email regular expression with `EmailValidator` gem.
|
7
|
+
* Provide `BCryptMigrationFromSHA1` password strategy to help people migrate from
|
5
8
|
SHA1 (the old default password strategy) to BCrypt (the new default).
|
6
9
|
* Require > Ruby 1.9.
|
7
|
-
* A revamped, more descriptive README.
|
8
10
|
* More extension points in more controllers.
|
9
|
-
* The email
|
10
|
-
table are NOT NULL in the default migration.
|
11
|
-
*
|
12
|
-
* Drop Rails plugin support.
|
13
|
-
* Add SignedIn and SignedOut routing constraints.
|
11
|
+
* The `email`, `encrypted_password`, and `remember_token` fields of the users
|
12
|
+
table are `NOT NULL` in the default migration.
|
13
|
+
* Add `SignedIn` and `SignedOut` routing constraints.
|
14
14
|
* Add a fake password strategy, which is useful when writing tests.
|
15
|
-
* Remove deprecated methods on User: remember_me!, generate_random_code,
|
16
|
-
password_required?.
|
17
15
|
* Improve security when changing password.
|
18
16
|
* Replace Cucumber feature generator with RSpec + Capybara.
|
19
17
|
* Remove Diesel dependency.
|
18
|
+
* Remove deprecated methods on User: `remember_me!`, `generate_random_code`,
|
19
|
+
`password_required?`.
|
20
20
|
* Add locales support.
|
21
|
-
* PasswordsController `params[:user]` has changed to `params[:password_reset]`
|
21
|
+
* `PasswordsController` `params[:user]` has changed to `params[:password_reset]`
|
22
|
+
to avoid locale conflicts.
|
23
|
+
* Prepare for Rails 4.
|
24
|
+
* Prepare for Ruby 2.
|
22
25
|
|
23
26
|
New for 0.16.2:
|
24
27
|
|
data/README.md
CHANGED
@@ -1,27 +1,30 @@
|
|
1
1
|
Clearance
|
2
2
|
=========
|
3
3
|
|
4
|
-
[![Build
|
5
|
-
|
4
|
+
[![Build
|
5
|
+
Status](https://secure.travis-ci.org/thoughtbot/clearance.png)](http://travis-ci.org/thoughtbot/clearance?branch=master)
|
6
|
+
[![Code
|
7
|
+
Climate](https://codeclimate.com/badge.png)](https://codeclimate.com/github/thoughtbot/clearance)
|
8
|
+
[![Dependency Status](https://gemnasium.com/thoughtbot/clearance.png)](https://gemnasium.com/thoughtbot/clearance)
|
6
9
|
|
7
10
|
Rails authentication with email & password.
|
8
11
|
|
9
|
-
Clearance was extracted out of [Airbrake](http://airbrake.io/).
|
10
|
-
|
12
|
+
Clearance was extracted out of [Airbrake](http://airbrake.io/). It is intended
|
13
|
+
to be small, simple, well-tested, with easy to override defaults.
|
11
14
|
|
12
|
-
Use [Github Issues](/thoughtbot/clearance/issues) for help.
|
15
|
+
Use [Github Issues](https://github.com/thoughtbot/clearance/issues) for help.
|
13
16
|
|
14
|
-
Read [CONTRIBUTING.md](/
|
17
|
+
Read [CONTRIBUTING.md](/CONTRIBUTING.md) to contribute.
|
15
18
|
|
16
19
|
Install
|
17
20
|
-------
|
18
21
|
|
19
|
-
Clearance is a Rails engine tested against
|
20
|
-
|
22
|
+
Clearance is a Rails engine tested against [Rails 3.x](/Appraisals) on Ruby
|
23
|
+
1.9.x.
|
21
24
|
|
22
25
|
Include the gem in your Gemfile:
|
23
26
|
|
24
|
-
gem 'clearance', '1.0.0.
|
27
|
+
gem 'clearance', '1.0.0.rc6'
|
25
28
|
|
26
29
|
Bundle:
|
27
30
|
|
@@ -33,13 +36,15 @@ Make sure the development database exists. Then, run the generator:
|
|
33
36
|
|
34
37
|
The generator:
|
35
38
|
|
36
|
-
* inserts Clearance::User into your User model
|
37
|
-
* inserts Clearance::
|
38
|
-
* creates a migration that either creates a users table or adds only missing
|
39
|
+
* inserts `Clearance::User` into your `User` model
|
40
|
+
* inserts `Clearance::Controller` into your `ApplicationController`
|
41
|
+
* creates a migration that either creates a users table or adds only missing
|
42
|
+
columns
|
39
43
|
|
40
44
|
Then, follow the instructions output from the generator.
|
41
45
|
|
42
|
-
Use
|
46
|
+
Use Clearance [0.8.8](https://github.com/thoughtbot/clearance/tree/v0.8.8)
|
47
|
+
series for Rails 2 apps.
|
43
48
|
|
44
49
|
Use [0.16.3](http://rubygems.org/gems/clearance/versions/0.16.3) for Ruby 1.8.7.
|
45
50
|
|
@@ -124,8 +129,7 @@ Rack applications can interact with it:
|
|
124
129
|
Overriding routes
|
125
130
|
-----------------
|
126
131
|
|
127
|
-
See [config/routes.rb](/
|
128
|
-
the default behavior.
|
132
|
+
See [config/routes.rb](/config/routes.rb) for the default behavior.
|
129
133
|
|
130
134
|
To override a Clearance route, redefine it:
|
131
135
|
|
@@ -134,8 +138,8 @@ To override a Clearance route, redefine it:
|
|
134
138
|
Overriding controllers
|
135
139
|
----------------------
|
136
140
|
|
137
|
-
See [app/controllers/clearance](/
|
138
|
-
|
141
|
+
See [app/controllers/clearance](/app/controllers/clearance) for the default
|
142
|
+
behavior.
|
139
143
|
|
140
144
|
To override a Clearance controller, subclass it:
|
141
145
|
|
@@ -152,8 +156,8 @@ Then, override public methods:
|
|
152
156
|
sessions#create
|
153
157
|
sessions#destroy
|
154
158
|
sessions#new
|
155
|
-
users#new
|
156
159
|
users#create
|
160
|
+
users#new
|
157
161
|
|
158
162
|
Or, override private methods:
|
159
163
|
|
@@ -161,9 +165,9 @@ Or, override private methods:
|
|
161
165
|
passwords#find_user_for_create
|
162
166
|
passwords#find_user_for_edit
|
163
167
|
passwords#find_user_for_update
|
164
|
-
passwords#flash_failure_when_forbidden
|
165
168
|
passwords#flash_failure_after_create
|
166
169
|
passwords#flash_failure_after_update
|
170
|
+
passwords#flash_failure_when_forbidden
|
167
171
|
passwords#forbid_missing_token
|
168
172
|
passwords#forbid_non_existent_user
|
169
173
|
passwords#url_after_create
|
@@ -182,11 +186,13 @@ All flash messages and email subject lines are stored in
|
|
182
186
|
[i18n translations](http://guides.rubyonrails.org/i18n.html).
|
183
187
|
Override them like any other translation.
|
184
188
|
|
189
|
+
See [config/locales/clearance.en.yml](/config/locales/clearance.en.yml) for the
|
190
|
+
default behavior.
|
191
|
+
|
185
192
|
Overriding views
|
186
193
|
----------------
|
187
194
|
|
188
|
-
See [app/views](/
|
189
|
-
behavior.
|
195
|
+
See [app/views](/app/views) for the default behavior.
|
190
196
|
|
191
197
|
To override a view, create your own:
|
192
198
|
|
@@ -206,8 +212,7 @@ There is a shortcut to copy all Clearance views into your app:
|
|
206
212
|
Overriding the model
|
207
213
|
--------------------
|
208
214
|
|
209
|
-
See [lib/clearance/user.rb](/
|
210
|
-
for the default behavior.
|
215
|
+
See [lib/clearance/user.rb](/lib/clearance/user.rb) for the default behavior.
|
211
216
|
|
212
217
|
To override the model, redefine public methods:
|
213
218
|
|
@@ -218,10 +223,10 @@ To override the model, redefine public methods:
|
|
218
223
|
|
219
224
|
Or, redefine private methods:
|
220
225
|
|
221
|
-
#downcase_email
|
222
226
|
#email_optional?
|
223
227
|
#generate_confirmation_token
|
224
228
|
#generate_remember_token
|
229
|
+
#normalize_email
|
225
230
|
#password_optional?
|
226
231
|
|
227
232
|
Overriding the password strategy
|
@@ -229,7 +234,8 @@ Overriding the password strategy
|
|
229
234
|
|
230
235
|
By default, Clearance uses BCrypt encryption of the user's password.
|
231
236
|
|
232
|
-
See
|
237
|
+
See
|
238
|
+
[lib/clearance/password_strategies/bcrypt.rb](/lib/clearance/password_strategies/bcrypt.rb)
|
233
239
|
for the default behavior.
|
234
240
|
|
235
241
|
Change your password strategy in `config/initializers/clearance.rb:`
|
@@ -249,20 +255,20 @@ The previous default password strategy was SHA1.
|
|
249
255
|
|
250
256
|
Switching password strategies may cause your existing users to not be able to sign in.
|
251
257
|
|
252
|
-
If you have an existing app that used the old `SHA1` strategy and you
|
253
|
-
|
254
|
-
[Clearance::PasswordStrategies::SHA1](/
|
258
|
+
If you have an existing app that used the old `SHA1` strategy and you want to
|
259
|
+
stay with SHA1, use
|
260
|
+
[Clearance::PasswordStrategies::SHA1](/lib/clearance/password_strategies/sha1.rb).
|
255
261
|
|
256
|
-
If you have an existing app that used the old `SHA1` strategy and you
|
257
|
-
|
258
|
-
[Clearance::PasswordStrategies::BCryptMigrationFromSHA1](/
|
262
|
+
If you have an existing app that used the old `SHA1` strategy and you want to
|
263
|
+
switch to BCrypt transparently, use
|
264
|
+
[Clearance::PasswordStrategies::BCryptMigrationFromSHA1](/lib/clearance/password_strategies/bcrypt_migration_from_sha1.rb).
|
259
265
|
|
260
266
|
The SHA1 and Blowfish password strategies require an additional `salt` column in
|
261
267
|
the `users` table. Run this migration before switching to SHA or Blowfish:
|
262
268
|
|
263
269
|
class AddSaltToUsers < ActiveRecord::Migration
|
264
270
|
def change
|
265
|
-
add_column :users, :salt, :string, :
|
271
|
+
add_column :users, :salt, :string, limit: 128
|
266
272
|
end
|
267
273
|
end
|
268
274
|
|
@@ -286,10 +292,11 @@ Optional Integration tests
|
|
286
292
|
Clearance's integration tests are dependent on:
|
287
293
|
|
288
294
|
* Capybara
|
289
|
-
* RSpec
|
290
295
|
* Factory Girl
|
296
|
+
* RSpec
|
291
297
|
|
292
|
-
As your app evolves, you want to know that authentication still works. We
|
298
|
+
As your app evolves, you want to know that authentication still works. We
|
299
|
+
include support for RSpec integration tests.
|
293
300
|
|
294
301
|
If you've installed [RSpec](https://github.com/rspec/rspec) in your app:
|
295
302
|
|
@@ -321,7 +328,7 @@ For example, in `spec/support/clearance.rb` or `test/test_helper.rb`:
|
|
321
328
|
|
322
329
|
require 'clearance/testing'
|
323
330
|
|
324
|
-
This will make `Clearance::
|
331
|
+
This will make `Clearance::Controller` methods work in your controllers
|
325
332
|
during functional tests and provide access to helper methods like:
|
326
333
|
|
327
334
|
sign_in
|
@@ -334,7 +341,7 @@ And matchers like:
|
|
334
341
|
|
335
342
|
Example:
|
336
343
|
|
337
|
-
context 'a
|
344
|
+
context 'a guest' do
|
338
345
|
before do
|
339
346
|
get :show
|
340
347
|
end
|
@@ -368,7 +375,7 @@ and [contributors](/thoughtbot/clearance/contributors) like you. Thank you!
|
|
368
375
|
License
|
369
376
|
-------
|
370
377
|
|
371
|
-
Clearance is copyright © 2009-
|
378
|
+
Clearance is copyright © 2009-2013 thoughtbot. It is free software, and may be
|
372
379
|
redistributed under the terms specified in the `LICENSE` file.
|
373
380
|
|
374
381
|
The names and logos for thoughtbot are trademarks of thoughtbot, inc.
|