Files
gitlab-foss/lib/authn/tokens/feed_token.rb
2025-05-15 09:12:59 +00:00

36 lines
807 B
Ruby

# frozen_string_literal:true
module Authn
module Tokens
class FeedToken
def self.prefix?(plaintext)
feed_token_prefixes = [::User.prefix_for_feed_token,
::User::FEED_TOKEN_PREFIX].uniq
plaintext.start_with?(*feed_token_prefixes)
end
attr_reader :revocable, :source
def initialize(plaintext, source)
@revocable = User.find_by_feed_token(plaintext)
@source = source
end
def present_with
::API::Entities::User
end
def revoke!(current_user)
raise ::Authn::AgnosticTokenIdentifier::NotFoundError, 'Not Found' if revocable.blank?
Users::ResetFeedTokenService.new(
current_user,
user: revocable,
source: source
).execute
end
end
end
end