Compare commits

...

1 Commits

Author SHA1 Message Date
Marcin Kulik 69c6246f66 Add profile feed tokens 8 years ago

@ -20,6 +20,7 @@ class User < ActiveRecord::Base
scope :with_username, -> { where('username IS NOT NULL') }
before_create :generate_auth_token
before_create :generate_feed_token
def self.for_email!(email)
raise InvalidEmailError if email.blank?
@ -55,6 +56,10 @@ class User < ActiveRecord::Base
SecureRandom.urlsafe_base64
end
def self.generate_feed_token
SecureRandom.urlsafe_base64
end
def self.null
new(temporary_username: 'anonymous')
end
@ -137,9 +142,18 @@ class User < ActiveRecord::Base
private
def generate_auth_token
generate_token(:auth)
end
def generate_feed_token
generate_token(:feed)
end
def generate_token(name)
token_name = :"#{name}_token"
begin
self[:auth_token] = self.class.generate_auth_token
end while self.class.exists?(auth_token: self[:auth_token])
self[token_name] = self.class.public_send(:"generate_#{token_name}")
end while self.class.exists?(token_name => self[token_name])
end
def asciicasts_scope(include_private)

@ -0,0 +1,15 @@
class AddFeedTokenToUsers < ActiveRecord::Migration
def up
add_column :users, :feed_token, :string
User.find_each do |user|
user.update_attribute(:feed_token, SecureRandom.urlsafe_base64)
end
change_column :users, :feed_token, :string, null: false
end
def down
remove_column :users, :feed_token
end
end

@ -0,0 +1,5 @@
class AddIndexToUsersOnFeedToken < ActiveRecord::Migration
def change
add_index :users, :feed_token
end
end
Loading…
Cancel
Save