28 lines
496 B
Ruby
28 lines
496 B
Ruby
|
class UserSession < ActiveRecord::Base
|
||
|
belongs_to :user
|
||
|
|
||
|
before_validation :set_unique_key
|
||
|
|
||
|
attr_accessor :username, :password
|
||
|
|
||
|
def self.authenticate(key)
|
||
|
self.find_by_key(key)
|
||
|
end
|
||
|
|
||
|
def self.new_by_user(user, env)
|
||
|
user_session = UserSession.new(
|
||
|
user: user,
|
||
|
user_agent: env['HTTP_USER_AGENT'],
|
||
|
ip: env['REMOTE_ADDR']
|
||
|
)
|
||
|
user_session.save
|
||
|
user_session
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def set_unique_key
|
||
|
self.key = SecureRandom.urlsafe_base64(32)
|
||
|
end
|
||
|
end
|