Fix double URL-encoding of Matrix user ID in SynapseHelper
rawurlencode($username) was called on line 38 (encoding the username), then rawurlencode($matrixId) was called on line 39 encoding the already- encoded string — causing %20 to become %2520 for usernames with special characters. Fixed by building $matrixId with the plain username and only encoding the full Matrix ID once in the URL path. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -35,7 +35,10 @@ class SynapseHelper {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
$matrixId = '@' . rawurlencode($username) . ':' . $domain;
|
// Build the Matrix user ID and percent-encode it once for the URL path.
|
||||||
|
// rawurlencode($username) here would double-encode any special chars when
|
||||||
|
// the full $matrixId string is encoded again below.
|
||||||
|
$matrixId = '@' . $username . ':' . $domain;
|
||||||
$url = rtrim($baseUrl, '/') . '/_synapse/admin/v2/users/' . rawurlencode($matrixId);
|
$url = rtrim($baseUrl, '/') . '/_synapse/admin/v2/users/' . rawurlencode($matrixId);
|
||||||
|
|
||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
|
|||||||
Reference in New Issue
Block a user