cartodb-4.42/app/models/carto/access_token.rb

38 lines
1.1 KiB
Ruby
Raw Normal View History

2024-04-06 13:25:13 +08:00
module Carto
class AccessToken < OauthToken
# Compatibility with ActiveRecord inheritance. When migrating to ActiveRecord,
# the class name changed from ::AccessToken to ::Carto::AccessToken
# Source: https://yiming.dev/blog/2017/12/07/add-sti-to-a-legacy-activerecord-model/
self.store_full_sti_class = false
before_create :set_authorized_at
after_create :store_api_credentials
after_destroy :clear_api_credentials
private
def metadata_key
"rails:oauth_access_tokens:#{token}"
end
def set_authorized_at
self.authorized_at = Time.now
end
def store_api_credentials
$api_credentials.hset metadata_key, "consumer_key", client_application.key
$api_credentials.hset metadata_key, "consumer_secret", client_application.secret
$api_credentials.hset metadata_key, "access_token_token", token
$api_credentials.hset metadata_key, "access_token_secret", secret
$api_credentials.hset metadata_key, "user_id", user_id
$api_credentials.hset metadata_key, "time", authorized_at
end
def clear_api_credentials
$api_credentials.del metadata_key
end
end
end