From 78603d834973921da25a1a5128dcd047e459d9ac Mon Sep 17 00:00:00 2001 From: joshua stein Date: Fri, 21 Jun 2013 21:19:57 -0500 Subject: [PATCH] unique mailing list tokens for everyone! --- app/models/user.rb | 9 ++++++++- db/migrate/20130622021035_add_user_list_id.rb | 13 +++++++++++++ db/schema.rb | 10 ++++++++-- 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20130622021035_add_user_list_id.rb diff --git a/app/models/user.rb b/app/models/user.rb index 63ca30c..e1ad858 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -34,7 +34,8 @@ class User < ActiveRecord::Base :pushover_mentions before_save :check_session_token - after_create :create_default_tag_filters, :create_rss_token + after_create :create_default_tag_filters, :create_rss_token, + :create_mailing_list_token BANNED_USERNAMES = [ "admin", "administrator", "hostmaster", "mailer-daemon", "postmaster", "root", "security", "support", "webmaster", ] @@ -78,6 +79,12 @@ class User < ActiveRecord::Base end end + def create_mailing_list_token + if self.mailing_list_token.blank? + self.mailing_list_token = Utils.random_str(10) + end + end + def unread_message_count Keystore.value_for("user:#{self.id}:unread_messages").to_i end diff --git a/db/migrate/20130622021035_add_user_list_id.rb b/db/migrate/20130622021035_add_user_list_id.rb new file mode 100644 index 0000000..5aab1de --- /dev/null +++ b/db/migrate/20130622021035_add_user_list_id.rb @@ -0,0 +1,13 @@ +class AddUserListId < ActiveRecord::Migration + def up + add_column :users, :mailing_list_token, :string + add_column :users, :mailing_list_enabled, :boolean, :default => false + + add_index "users", [ "mailing_list_enabled" ] + end + + def down + remove_column :users, :mailing_list_token + remove_column :users, :mailing_list_enabled + end +end diff --git a/db/schema.rb b/db/schema.rb index 9ef9c72..5a00104 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20130526164230) do +ActiveRecord::Schema.define(:version => 20130622021035) do create_table "comments", :force => true do |t| t.datetime "created_at", :null => false @@ -142,9 +142,15 @@ ActiveRecord::Schema.define(:version => 20130526164230) do t.boolean "is_moderator", :default => false t.boolean "email_mentions", :default => false t.boolean "pushover_mentions", :default => false - t.string "rss_token" + t.string "rss_token", :limit => 75 + t.string "mailing_list_token", :limit => 75 + t.boolean "mailing_list_enabled", :default => false end + add_index "users", ["mailing_list_enabled"], :name => "mailing_list_enabled" + add_index "users", ["mailing_list_token"], :name => "mailing_list_token", :unique => true + add_index "users", ["password_reset_token"], :name => "password_reset_token", :unique => true + add_index "users", ["rss_token"], :name => "rss_token", :unique => true add_index "users", ["session_token"], :name => "session_hash", :unique => true add_index "users", ["username"], :name => "username", :unique => true