summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Medvinsky <me@dmedvinsky.name>2014-03-19 17:32:38 +0400
committerDmitry Medvinsky <me@dmedvinsky.name>2014-03-20 19:09:14 +0400
commitfefab474569f231676a4fd1579a70723d729f206 (patch)
tree0ab647700df2999e609e6e3195dd91ad79ec2caa
parentc0090a3ff50802d796ec36f49ade1bb4fdd4d190 (diff)
downloadgitlab-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--CHANGELOG1
-rw-r--r--app/controllers/profiles/keys_controller.rb2
-rw-r--r--spec/controllers/profile_keys_controller_spec.rb10
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