class OauthToken < ActiveRecord::Base belongs_to :client_application belongs_to :user scope :authorized, -> { where("authorized_at IS NOT NULL and invalidated_at IS NULL") } validates :token, :presence => true, :uniqueness => true validates :user, :associated => true validates :client_application, :presence => true before_validation :generate_keys, :on => :create def invalidated? invalidated_at != nil end def invalidate! update_attributes(:invalidated_at => Time.now) end def authorized? !authorized_at.nil? && !invalidated? end def to_query "oauth_token=#{token}&oauth_token_secret=#{secret}" end protected def generate_keys self.token = OAuth::Helper.generate_key(40)[0, 40] self.secret = OAuth::Helper.generate_key(40)[0, 40] end end