Skip to content
This repository was archived by the owner on Jun 2, 2021. It is now read-only.

Commit 74ef123

Browse files
reidmitmonamohebbi
andcommitted
Users with URL unsafe characters in guids do not cause unknown errors
when being presented * same fix as 9997811 but for links in the roles endpoints [finishes #172744797] Co-authored-by: Reid Mitchell <rmitchell@pivotal.io> Co-authored-by: Mona Mohebbi <mmohebbi@pivotal.io>
1 parent f3ac783 commit 74ef123

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

app/presenters/v3/role_presenter.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def build_links
2626
href: url_builder.build_url(path: "/v3/roles/#{role.guid}"),
2727
},
2828
user: {
29-
href: url_builder.build_url(path: "/v3/users/#{role.user_guid}"),
29+
href: url_builder.build_url(path: "/v3/users/#{CGI.escape(role.user_guid)}"),
3030
},
3131
}
3232
if VCAP::CloudController::RoleTypes::SPACE_ROLES.include? role.type

spec/unit/presenters/v3/role_presenter_spec.rb

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,16 @@ module VCAP::CloudController::Presenters::V3
125125
expect(result[:links][:organization][:href]).to eq("#{link_prefix}/v3/organizations/#{role.organization.guid}")
126126
end
127127
end
128+
129+
describe 'when the user guid is weird' do
130+
let(:user) { VCAP::CloudController::User.make(guid: ':---)') }
131+
let(:role) { VCAP::CloudController::SpaceAuditor.make(user: user) }
132+
let(:result) { presenter.to_hash }
133+
134+
it 'presents the role' do
135+
expect(result[:links][:user][:href]).to eq("#{link_prefix}/v3/users/#{CGI.escape(role.user_guid)}")
136+
end
137+
end
128138
end
129139
end
130140
end

0 commit comments

Comments
 (0)