MDL-67554 oauth2: New filtered language tags for additional parameters.

This adds support for new language tags in OAuth2's
"Additional Parameters Included in a Login Request"
field. Available tags include:

Tags            Example value
-----------------------------
{lang}          fr
{LANG}          FR
{language}      fr_ca
{LANGUAGE}      FR_CA
{lan-guage}     fr-ca
{LAN-GUAGE}     FR-CA
This commit is contained in:
Michael Milette
2024-06-23 16:30:07 -04:00
parent ad7fc69c25
commit 27a6dbeeb6
+14
View File
@@ -126,6 +126,20 @@ class client extends \oauth2_client {
return [];
}
$result = [];
// Replace the language tag if it appears in the string.
$lang = current_language();
$tags = ["{lang}", "{LANG}", "{language}", "{LANGUAGE}", '{lan-guage}', '{LAN-GUAGE}'];
$langcode = [
strtolower(substr($lang, 0, 2)),
strtoupper(substr($lang, 0, 2)),
strtolower($lang),
strtoupper($lang),
str_replace('_', '-', strtolower($lang)),
str_replace('_', '-', strtoupper($lang)),
];
$params = str_replace($tags, $langcode, $params);
parse_str($params, $result);
return $result;
}