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 ...@@ -154,30 +154,45 @@ class sspmod_consent_Auth_Process_Consent extends SimpleSAML_Auth_ProcessingFilt
if (count($option) === count($option, COUNT_RECURSIVE)) { if (count($option) === count($option, COUNT_RECURSIVE)) {
// Array is not multidimensional. Simple in_array search suffices // Array is not multidimensional. Simple in_array search suffices
return in_array($entityId, $option, true); 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)) { // Array contains at least one element that is an array, verify both possibilities
return true; if (in_array($entityId, $option, true)) {
} else { return true;
// Search in multidimensional arrays }
foreach ($option as $optionToTest) {
if (is_array($optionToTest)) { // Search in multidimensional arrays
if (array_key_exists('type', $optionToTest)) { foreach ($option as $optionToTest) {
if ($optionToTest['type'] === 'regex') { if (!is_array($optionToTest)) {
if (array_key_exists('pattern', $optionToTest)) { continue; // bad option
// Evaluate regular expression and return true if entityId matches }
if (preg_match($optionToTest['pattern'], $entityId) === 1) {
return true; 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 { } else {
return (boolean)$option; 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