openstreetmap-website/db/migrate/051_add_status_to_user.rb
Tom Hughes 5a54630b57 Add support for suspended and confirmed users
Replace the existing "active" and "visible" with an enumerated status
that allows for extra cases. Currently we have "suspended" for users
who hve triggered the spam detector and "confirmed" for users that have
triggered the detector but have been confirmed as vald by an admin.
2010-05-06 17:18:34 +01:00

29 lines
1 KiB
Ruby

require 'lib/migrate'
class AddStatusToUser < ActiveRecord::Migration
def self.up
create_enumeration :user_status_enum, ["pending","active","confirmed","suspended","deleted"]
add_column :users, :status, :user_status_enum, :null => false, :default => "pending"
User.update_all("status = 'deleted'", { :visible => false })
User.update_all("status = 'pending'", { :visible => true, :active => 0 })
User.update_all("status = 'active'", { :visible => true, :active => 1 })
remove_column :users, :active
remove_column :users, :visible
end
def self.down
add_column :users, :visible, :boolean, :default => true, :null => false
add_column :users, :active, :integer, :default => 0, :null => false
User.update_all("visible = true, active = 1", { :status => "active" })
User.update_all("visible = true, active = 0", { :status => "pending" })
User.update_all("visible = false, active = 1", { :status => "deleted" })
remove_column :users, :status
drop_enumeration :user_status_enum
end
end