Remove PersonalAccessTokensFinder#find_by method

find_by_token is overriden by TokenAuthenticatable which can be easily
missed or confused with #find_by(:token) defined by ActiveRecord. First
step for safer usage is to remove #find_by.
This commit is contained in:
Imre Farkas 2018-10-26 16:47:03 +02:00
parent ef220c4d5b
commit 8d900ade38
No known key found for this signature in database
GPG key ID: CC029B6277DD5662
5 changed files with 11 additions and 14 deletions

View file

@ -3,7 +3,7 @@
class PersonalAccessTokensFinder
attr_accessor :params
delegate :build, :find, :find_by, :find_by_token, to: :execute
delegate :build, :find, :find_by_id, :find_by_token, to: :execute
def initialize(params = {})
@params = params

View file

@ -460,12 +460,6 @@ class User < ActiveRecord::Base
by_username(username).take!
end
def find_by_personal_access_token(token_string)
return unless token_string
PersonalAccessTokensFinder.new(state: 'active').find_by_token(token_string)&.user # rubocop: disable CodeReuse/Finder
end
# Returns a user for the given SSH key.
def find_by_ssh_key_id(key_id)
Key.find_by(id: key_id)&.user

View file

@ -0,0 +1,5 @@
---
title: Remove PersonalAccessTokensFinder#find_by method
merge_request: 22617
author:
type: fixed

View file

@ -512,11 +512,9 @@ module API
PersonalAccessTokensFinder.new({ user: user, impersonation: true }.merge(options))
end
# rubocop: disable CodeReuse/ActiveRecord
def find_impersonation_token
finder.find_by(id: declared_params[:impersonation_token_id]) || not_found!('Impersonation Token')
finder.find_by_id(declared_params[:impersonation_token_id]) || not_found!('Impersonation Token')
end
# rubocop: enable CodeReuse/ActiveRecord
end
before { authenticated_as_admin! }

View file

@ -92,7 +92,7 @@ describe PersonalAccessTokensFinder do
end
describe 'with id' do
subject { finder(params).find_by(id: active_personal_access_token.id) }
subject { finder(params).find_by_id(active_personal_access_token.id) }
it { is_expected.to eq(active_personal_access_token) }
@ -106,7 +106,7 @@ describe PersonalAccessTokensFinder do
end
describe 'with token' do
subject { finder(params).find_by(token: active_personal_access_token.token) }
subject { finder(params).find_by_token(active_personal_access_token.token) }
it { is_expected.to eq(active_personal_access_token) }
@ -207,7 +207,7 @@ describe PersonalAccessTokensFinder do
end
describe 'with id' do
subject { finder(params).find_by(id: active_personal_access_token.id) }
subject { finder(params).find_by_id(active_personal_access_token.id) }
it { is_expected.to eq(active_personal_access_token) }
@ -221,7 +221,7 @@ describe PersonalAccessTokensFinder do
end
describe 'with token' do
subject { finder(params).find_by(token: active_personal_access_token.token) }
subject { finder(params).find_by_token(active_personal_access_token.token) }
it { is_expected.to eq(active_personal_access_token) }