mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-21 17:50:13 +01:00
Reinier Balt wrote:
> One problem I see is when people want to downgrade. You chop the
> password field back to 40 chars, but it will cause all users incapable
> of logging in. Perhaps we can put a default password in the password on
> migration.down? like sha1('secret123') so we leave Tracks operable on
> downgrade?
https://github.com/bsag/tracks-old/pull/26#issuecomment-2001500
20 lines
675 B
Ruby
20 lines
675 B
Ruby
class ChangeCryptedPasswordLength < ActiveRecord::Migration
|
|
def self.up
|
|
change_column 'users', 'crypted_password', :string, :limit => 60
|
|
end
|
|
|
|
def self.down
|
|
# Begin with setting all passwords hashed with BCrypt to SHA-1 ones as
|
|
# BCrypt's format won't fit into a narrower column.
|
|
User.transaction do
|
|
User.all.each do |user|
|
|
if user.auth_type == 'database' and not user.uses_deprecated_password?
|
|
user.password = user.password_confirmation = nil
|
|
user.crypted_password = User.sha1 'change_me'
|
|
user.save!
|
|
end
|
|
end
|
|
end
|
|
change_column 'users', 'crypted_password', :string, :limit => 40
|
|
end
|
|
end
|