Skip to content
Snippets Groups Projects
Commit 108c7279 authored by UQAM\rioux_vi's avatar UQAM\rioux_vi
Browse files

Code adjust according to comments.

parent b0029aa5
No related branches found
No related tags found
No related merge requests found
......@@ -154,30 +154,45 @@ class sspmod_consent_Auth_Process_Consent extends SimpleSAML_Auth_ProcessingFilt
if (count($option) === count($option, COUNT_RECURSIVE)) {
// Array is not multidimensional. Simple in_array search suffices
return in_array($entityId, $option, true);
} else {
// Array contains at least one element that is an array, verify both possibilities
if (in_array($entityId, $option, true)) {
return true;
} else {
// Search in multidimensional arrays
foreach ($option as $optionToTest) {
if (is_array($optionToTest)) {
if (array_key_exists('type', $optionToTest)) {
if ($optionToTest['type'] === 'regex') {
if (array_key_exists('pattern', $optionToTest)) {
// Evaluate regular expression and return true if entityId matches
if (preg_match($optionToTest['pattern'], $entityId) === 1) {
return true;
}
}
}
}
}
}
// Array contains at least one element that is an array, verify both possibilities
if (in_array($entityId, $option, true)) {
return true;
}
// Search in multidimensional arrays
foreach ($option as $optionToTest) {
if (!is_array($optionToTest)) {
continue; // bad option
}
if (!array_key_exists('type', $optionToTest)) {
continue; // option has no type
}
// Option has a type - switch processing depending on type value :
if ($optionToTest['type'] === 'regex') {
// regex-based consent disabling
if (!array_key_exists('pattern'), $optionToTest) {
continue; // no pattern defined
}
if (preg_match($optionToTest['pattern'], $entityId) === 1) {
return true;
}
// Base case : no match
return false;
} else {
// option type is not supported
continue;
}
}
} // end foreach
// Base case : no match
return false;
} else {
return (boolean)$option;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment