28 lines
749 B
Ruby
28 lines
749 B
Ruby
require 'travis/api/app/access_token'
|
|
require 'travis/api/v3/access_control/user'
|
|
|
|
module Travis::API::V3
|
|
# Using v2 API tokens to access v3 API.
|
|
# Allows us to later introduce a new way of storing tokens with more capabilities without API users having to know.
|
|
class AccessControl::LegacyToken < AccessControl::User
|
|
auth_type('token', 'basic')
|
|
|
|
def self.for_request(type, payload, env)
|
|
payload = paylad.first if payload.is_a? Array
|
|
token = Travis::Api::App::AccessToken.find_by_token(payload)
|
|
new(token) if token
|
|
end
|
|
|
|
def initialize(token)
|
|
@token = token
|
|
super(token.user)
|
|
end
|
|
|
|
protected
|
|
|
|
def permission?(action, id)
|
|
super if @token.scopes.include? :private
|
|
end
|
|
end
|
|
end
|