Skip to content
Snippets Groups Projects
Commit bfeb56c8 authored by m0ark's avatar m0ark Committed by Tim van Dijen
Browse files

Add Support for custom error messages (#1326)

parent 066fb234
No related branches found
No related tags found
No related merge requests found
...@@ -10,6 +10,7 @@ See the upgrade notes for specific information about upgrading. ...@@ -10,6 +10,7 @@ See the upgrade notes for specific information about upgrading.
Released TBD Released TBD
* Restore support for custom error messages (#1326)
* Fixed a bug in the Artifact Resolution Service (#1428) * Fixed a bug in the Artifact Resolution Service (#1428)
* Fixed compatibility with Composer pre 1.8.5 (Debian 10) (#1427) * Fixed compatibility with Composer pre 1.8.5 (Debian 10) (#1427)
* Updated npm dependencies up to February 1, 2021 * Updated npm dependencies up to February 1, 2021
......
...@@ -12,7 +12,6 @@ use SimpleSAML\Locale\Translate; ...@@ -12,7 +12,6 @@ use SimpleSAML\Locale\Translate;
* @author Hanne Moa, UNINETT AS. <hanne.moa@uninett.no> * @author Hanne Moa, UNINETT AS. <hanne.moa@uninett.no>
* @package SimpleSAMLphp * @package SimpleSAMLphp
*/ */
class ErrorCodes class ErrorCodes
{ {
/** /**
...@@ -161,8 +160,12 @@ class ErrorCodes ...@@ -161,8 +160,12 @@ class ErrorCodes
*/ */
public static function getErrorCodeTitle($errorCode) public static function getErrorCodeTitle($errorCode)
{ {
$errorCodeTitles = self::getAllErrorCodeTitles(); if (array_key_exists($errorCode, self::getAllErrorCodeTitles())) {
return $errorCodeTitles[$errorCode]; $errorCodeTitles = self::getAllErrorCodeTitles();
return $errorCodeTitles[$errorCode];
} else {
return Translate::addTagPrefix($errorCode, 'title_');
}
} }
...@@ -175,8 +178,12 @@ class ErrorCodes ...@@ -175,8 +178,12 @@ class ErrorCodes
*/ */
public static function getErrorCodeDescription($errorCode) public static function getErrorCodeDescription($errorCode)
{ {
$errorCodeDescriptions = self::getAllErrorCodeDescriptions(); if (array_key_exists($errorCode, self::getAllErrorCodeTitles())) {
return $errorCodeDescriptions[$errorCode]; $errorCodeDescriptions = self::getAllErrorCodeDescriptions();
return $errorCodeDescriptions[$errorCode];
} else {
return Translate::addTagPrefix($errorCode, 'descr_');
}
} }
......
...@@ -58,7 +58,7 @@ class Translate ...@@ -58,7 +58,7 @@ class Translate
* Constructor * Constructor
* *
* @param \SimpleSAML\Configuration $configuration Configuration object * @param \SimpleSAML\Configuration $configuration Configuration object
* @param string|null $defaultDictionary The default dictionary where tags will come from. * @param string|null $defaultDictionary The default dictionary where tags will come from.
*/ */
public function __construct(Configuration $configuration, $defaultDictionary = null) public function __construct(Configuration $configuration, $defaultDictionary = null)
{ {
...@@ -230,7 +230,7 @@ class Translate ...@@ -230,7 +230,7 @@ class Translate
/** /**
* Mark a string for translation without translating it. * Mark a string for translation without translating it.
* *
* @param string $tag A tag name to mark for translation. * @param string $tag A tag name to mark for translation.
* *
* @return string The tag, unchanged. * @return string The tag, unchanged.
*/ */
...@@ -356,7 +356,7 @@ class Translate ...@@ -356,7 +356,7 @@ class Translate
/** /**
* Include a language file from the dictionaries directory. * Include a language file from the dictionaries directory.
* *
* @param string $file File name of dictionary to include * @param string $file File name of dictionary to include
* @param \SimpleSAML\Configuration|null $otherConfig Optionally provide a different configuration object than the * @param \SimpleSAML\Configuration|null $otherConfig Optionally provide a different configuration object than the
* one provided in the constructor to be used to find the directory of the dictionary. This allows to combine * one provided in the constructor to be used to find the directory of the dictionary. This allows to combine
* dictionaries inside the SimpleSAMLphp main code distribution together with external dictionaries. Defaults to * dictionaries inside the SimpleSAMLphp main code distribution together with external dictionaries. Defaults to
...@@ -541,4 +541,21 @@ class Translate ...@@ -541,4 +541,21 @@ class Translate
// nothing we can use, return null so that we can set a default // nothing we can use, return null so that we can set a default
return null; return null;
} }
/**
* Prefix tag
*
* @param string $tag Translation tag
* @param string $prefix Prefix to be added
*
* @return string Prefixed tag
*/
public static function addTagPrefix(string $tag, string $prefix): string
{
$tagPos = strrpos($tag, ':');
// if tag contains ':' target actual tag
$tagPos = ($tagPos === false) ? 0 : $tagPos + 1;
// add prefix at $tagPos
return substr_replace($tag, $prefix, $tagPos, 0);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment