diff options
author | Dmitry Medvinsky <me@dmedvinsky.name> | 2014-03-19 17:32:38 +0400 |
---|---|---|
committer | Dmitry Medvinsky <me@dmedvinsky.name> | 2014-03-20 19:09:14 +0400 |
commit | fefab474569f231676a4fd1579a70723d729f206 (patch) | |
tree | 0ab647700df2999e609e6e3195dd91ad79ec2caa | |
parent | c0090a3ff50802d796ec36f49ade1bb4fdd4d190 (diff) | |
download | gitlab-ce-fefab474569f231676a4fd1579a70723d729f206.tar.gz |
Fix `/:username.keys` response content type
Currently this method responds with `text/html`. It is kind of unusable
if you open it in a browser. The browser thinks it is HTML and renders
it as HTML, meaning new lines are dropped. So it's very hard to
distinguish where the key starts and where it ends.
This commit changes the content type header to `text/plain`.
-rw-r--r-- | CHANGELOG | 1 | ||||
-rw-r--r-- | app/controllers/profiles/keys_controller.rb | 2 | ||||
-rw-r--r-- | spec/controllers/profile_keys_controller_spec.rb | 10 |
3 files changed, 12 insertions, 1 deletions
diff --git a/CHANGELOG b/CHANGELOG index a9a8c00666d..1d41a3505da 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -29,6 +29,7 @@ v 6.7.0 - Better API responses for access_levels (sponsored by O'Reilly Media) - Requires at least 2 unicorn workers - Requires gitlab-shell v1.9+ + - Fix `/:username.keys` response content type (Dmitry Medvinsky) v 6.6.5 - Added option to remove issue assignee on project issue page and issue edit page (Jason Blanchard) diff --git a/app/controllers/profiles/keys_controller.rb b/app/controllers/profiles/keys_controller.rb index b4f14e649e2..6713cd7c8c7 100644 --- a/app/controllers/profiles/keys_controller.rb +++ b/app/controllers/profiles/keys_controller.rb @@ -41,7 +41,7 @@ class Profiles::KeysController < ApplicationController begin user = User.find_by_username(params[:username]) if user.present? - render text: user.all_ssh_keys.join("\n") + render text: user.all_ssh_keys.join("\n"), content_type: "text/plain" else render_404 and return end diff --git a/spec/controllers/profile_keys_controller_spec.rb b/spec/controllers/profile_keys_controller_spec.rb index 121012d5d49..593d3e9eb56 100644 --- a/spec/controllers/profile_keys_controller_spec.rb +++ b/spec/controllers/profile_keys_controller_spec.rb @@ -24,6 +24,11 @@ describe Profiles::KeysController do expect(response.body).to eq("") end + + it "should respond with text/plain content type" do + get :get_keys, username: user.username + expect(response.content_type).to eq("text/plain") + end end describe "user with keys" do @@ -44,6 +49,11 @@ describe Profiles::KeysController do expect(response.body).not_to eq("") expect(response.body).to eq(user.all_ssh_keys.join("\n")) end + + it "should respond with text/plain content type" do + get :get_keys, username: user.username + expect(response.content_type).to eq("text/plain") + end end end end |