mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-29 06:26:07 +10:00
Authenticate non-API requests with personal access tokens.
- Rename the `authenticate_user_from_token!` filter to `authenticate_user_from_private_token!` - Add a new `authenticate_user_from_personal_access_token!` filter - Add tests for both.
This commit is contained in:
@@ -30,4 +30,70 @@ describe ApplicationController do
|
||||
controller.send(:check_password_expiration)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#authenticate_user_from_private_token!" do
|
||||
controller(ApplicationController) do
|
||||
def index
|
||||
render text: "authenticated"
|
||||
end
|
||||
end
|
||||
|
||||
let(:user) { create(:user) }
|
||||
|
||||
it "logs the user in when the 'authenticity_token' param is populated with the private token" do
|
||||
get :index, authenticity_token: user.private_token
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.body).to eq("authenticated")
|
||||
end
|
||||
|
||||
it "logs the user in when the 'private_token' param is populated with the private token" do
|
||||
get :index, private_token: user.private_token
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.body).to eq("authenticated")
|
||||
end
|
||||
|
||||
it "logs the user in when the 'PRIVATE-TOKEN' header is populated with the private token" do
|
||||
@request.headers['PRIVATE-TOKEN'] = user.private_token
|
||||
get :index
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.body).to eq("authenticated")
|
||||
end
|
||||
|
||||
it "doesn't log the user in otherwise" do
|
||||
@request.headers['PRIVATE-TOKEN'] = "token"
|
||||
get :index, private_token: "token", authenticity_token: "token"
|
||||
expect(response.status).to_not eq(200)
|
||||
expect(response.body).to_not eq("authenticated")
|
||||
end
|
||||
end
|
||||
|
||||
describe "#authenticate_user_from_personal_access_token!" do
|
||||
controller(ApplicationController) do
|
||||
def index
|
||||
render text: 'authenticated'
|
||||
end
|
||||
end
|
||||
|
||||
let(:user) { create(:user) }
|
||||
let(:personal_access_token) { create(:personal_access_token, user: user) }
|
||||
|
||||
it "logs the user in when the 'personal_access_token' param is populated with the personal access token" do
|
||||
get :index, personal_access_token: personal_access_token.token
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.body).to eq('authenticated')
|
||||
end
|
||||
|
||||
it "logs the user in when the 'PERSONAL_ACCESS_TOKEN' header is populated with the personal access token" do
|
||||
@request.headers["PERSONAL_ACCESS_TOKEN"] = personal_access_token.token
|
||||
get :index
|
||||
expect(response.status).to eq(200)
|
||||
expect(response.body).to eq('authenticated')
|
||||
end
|
||||
|
||||
it "doesn't log the user in otherwise" do
|
||||
get :index, personal_access_token: "token"
|
||||
expect(response.status).to_not eq(200)
|
||||
expect(response.body).to_not eq('authenticated')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user