Fix MultiSelectOptionType::checkUser()
authorMatthias Schmidt <gravatronics@live.com>
Tue, 27 Dec 2016 13:32:50 +0000 (14:32 +0100)
committerMatthias Schmidt <gravatronics@live.com>
Tue, 27 Dec 2016 13:32:50 +0000 (14:32 +0100)
wcfsetup/install/files/lib/system/option/MultiSelectOptionType.class.php

index 61a41a1194fd04d9a8616c1ec48c03bd92cb54f5..6578ad2f8401535c3170ae8118e1569564d2ec64 100644 (file)
@@ -106,9 +106,10 @@ class MultiSelectOptionType extends SelectOptionType {
        public function checkUser(User $user, Option $option, $value) {
                if (!is_array($value) || empty($value)) return false;
                
-               $optionValues = explode('\n', $user->getUserOption($option->optionName));
+               $optionValues = explode("\n", $user->getUserOption($option->optionName));
                
-               return count(array_diff($optionValues, $value)) > 0;
+               // check if the user has selected all options in $value array
+               return count(array_intersect($value, $optionValues)) === count($value);
        }
        
        /**