forked from thoughtbot/clearance
-
Notifications
You must be signed in to change notification settings - Fork 0
Upgrading Clearance
croaky edited this page Mar 31, 2013
·
5 revisions
As of the 1.0.x series of Clearance, the following things are true:
- The module to include in your
ApplicationController
isClearance::Controller
, notClearance::Authentication
. - The default encryption strategy is BCrypt, not SHA1.
To continue using SHA1 in your project, change the config option to this:
Clearance.configure do |config|
config.password_strategy = Clearance::PasswordStrategies::SHA1
end
To transition your users from SHA1 to BCrypt, change the config option to this:
Clearance.configure do |config|
config.password_strategy = Clearance::PasswordStrategies::BCryptMigrationFromSHA1
end
As of the 0.11.x series of Clearance, the following things are true:
- The way to protect your controller actions is via
before_filter :authorize
, notbefore_filter :authenticate
. - There is no email confirmation.
- There is no password confirmation.
- There is no dependency on dynamic_form.
- Email addresses are forced to lower case.
- The generators are namespaced by community convention:
rails g clearance:install
,rails g clearance:features
, andrails g clearance:views
. - There are no Formtastic or Haml view generators.
- The email fields are all now of HTML5 type
email
.
So, if you upgrading to the latest version of Clearance from an older version of Clearance, you may want to take at least some, if not all, of the following steps:
- Remove the
password_confirmation
attribute from yourspec/factories.rb
file. - Remove the
password_confirmation
field from yourusers/new
view. - Change
before_filter :authenticate
everywhere tobefore_filter :authorize
. - Remove
form.error_messages
in any of your generatedusers/new
andpasswords/edit
views. - Re-generate the features:
rails g clearance:features
. - Change the email fields in any of your generated
users/new
,sessions/new
, orpasswords/new
views. (necessary only to get features to pass) -
require 'shoulda/macros'
becomesrequire 'shoulda/testing'
Write a migration to downcase the existing emails in your users table:
class DowncaseEmails < ActiveRecord::Migration
def up
update 'UPDATE users SET email = LOWER(email)'
end
end