MDL-75085 core_external: Validate $required param

Make sure that the $required param for external_description and its
subclasses are either VALUE_DEFAULT, VALUE_REQUIRED, or VALUE_OPTIONAL.
This commit is contained in:
Jun Pataleta
2023-02-02 09:13:43 +08:00
parent 7a85d041d7
commit 60fe64d786
3 changed files with 79 additions and 1 deletions
+9 -1
View File
@@ -37,10 +37,18 @@ abstract class external_description {
* Contructor.
*
* @param string $desc Description of element
* @param int $required Whethe the element value is required
* @param int $required Whether the element value is required. Valid values are VALUE_DEFAULT, VALUE_REQUIRED, VALUE_OPTIONAL.
* @param mixed $default The default value
*/
public function __construct($desc, $required, $default) {
if (!in_array($required, [VALUE_DEFAULT, VALUE_REQUIRED, VALUE_OPTIONAL], true)) {
$requiredstr = $required;
if (is_array($required)) {
$requiredstr = "Array: " . implode(" ", $required);
}
debugging("Invalid \$required parameter value: '{$requiredstr}'.
It must be either VALUE_DEFAULT, VALUE_REQUIRED, or VALUE_OPTIONAL", DEBUG_DEVELOPER);
}
$this->desc = $desc;
$this->required = $required;
$this->default = $default;