openstreetmap-website/app/models/oauth_token.rb

34 lines
757 B
Ruby

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_uniqueness_of :token
validates_presence_of :client_application, :token
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