mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-08 07:35:01 +03:00
client: Ensure query string values are URL-encoded (#17235)
This PR fixes an issue where the query string values weren't URL-encoded when authenticating as an admin in development. Release Notes: - N/A
This commit is contained in:
parent
b386b6c237
commit
54ac963bcd
@ -1456,16 +1456,32 @@ impl Client {
|
||||
user
|
||||
};
|
||||
|
||||
let query_params = [
|
||||
("github_login", &github_user.login),
|
||||
("github_user_id", &github_user.id.to_string()),
|
||||
(
|
||||
"github_user_created_at",
|
||||
&github_user.created_at.to_rfc3339(),
|
||||
),
|
||||
];
|
||||
|
||||
// Use the collab server's admin API to retrieve the ID
|
||||
// of the impersonated user.
|
||||
let mut url = self.rpc_url(http.clone(), None).await?;
|
||||
url.set_path("/user");
|
||||
url.set_query(Some(&format!(
|
||||
"github_login={login}&github_user_id={id}&github_user_created_at={created_at}",
|
||||
login = github_user.login,
|
||||
id = github_user.id,
|
||||
created_at = github_user.created_at.to_rfc3339()
|
||||
)));
|
||||
url.set_query(Some(
|
||||
&query_params
|
||||
.iter()
|
||||
.map(|(key, value)| {
|
||||
format!(
|
||||
"{}={}",
|
||||
key,
|
||||
url::form_urlencoded::byte_serialize(value.as_bytes()).collect::<String>()
|
||||
)
|
||||
})
|
||||
.collect::<Vec<String>>()
|
||||
.join("&"),
|
||||
));
|
||||
let request: http_client::Request<AsyncBody> = Request::get(url.as_str())
|
||||
.header("Authorization", format!("token {api_token}"))
|
||||
.body("".into())?;
|
||||
|
Loading…
Reference in New Issue
Block a user