unique mailing list tokens for everyone!

This commit is contained in:
joshua stein 2013-06-21 21:19:57 -05:00
parent b641d0232d
commit 78603d8349
3 changed files with 29 additions and 3 deletions

View file

@ -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

View file

@ -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

View file

@ -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