0c8ae3b7 by Joshua Tundag

Merge branch '11515_encrypted_flag' into 'master'

update 11515_encrypted_flag

See merge request !2
2 parents 0adf9d88 783c9be5
...@@ -156,25 +156,31 @@ class FlagManager { ...@@ -156,25 +156,31 @@ class FlagManager {
156 if(!$flags) return []; 156 if(!$flags) return [];
157 foreach($flags as $flag){ 157 foreach($flags as $flag){
158 $value = $this->checkFlag($flag, !empty($flag['default']) ? $flag['default'] : null); 158 $value = $this->checkFlag($flag, !empty($flag['default']) ? $flag['default'] : null);
159 setcookie($flag['encrypted_name'], $value, time() + (86400 * 30), "/"); 159 setcookie($flag['encrypted_name'], $value['cookie_value'], time() + (86400 * 30), "/");
160 } 160 }
161 } 161 }
162 162
163 private function filterFlag($flag, $needle, $defaultValue){ 163 private function filterFlag($flag, $needle, $defaultValue){
164 $this->checkDir(); 164 $this->checkDir();
165 if(!$flag['is_filtered']) return $needle; 165 if(!$flag['is_filtered']) return array('value' => $needle, 'cookie_value' => $needle );
166 166
167 $acceptedValues = $flag['accepted_values']; 167 $acceptedValues = $flag['accepted_values'];
168 if(isset($flag['both_usable'])){ 168 if(isset($flag['both_usable'])){
169 if($flag['both_usable']){ 169 if($flag['both_usable']){
170 return count(array_filter($acceptedValues, function($value) use ($needle) { 170 $flag_value = '';
171 return $value['encrypted_value'] == $needle || $value['value'] == $needle; 171 foreach($acceptedValues as $value) {
172 })) ? $needle : $defaultValue; 172 if($value['encrypted_value'] == $needle || $value['value'] == $needle)
173 $flag_value = $value['value'];
173 } 174 }
175 return $flag_value != '' ? array('value' => $flag_value, 'cookie_value' => $needle ) : array('value' => $defaultValue, 'cookie_value' => $defaultValue );
174 } 176 }
175 return count(array_filter($acceptedValues, function($value) use ($needle) { 177 }
176 return $value['encrypted_value'] == $needle; 178 $flag_value = '';
177 })) ? $needle : $defaultValue; 179 foreach($acceptedValues as $value) {
180 if($value['encrypted_value'] == $needle)
181 $flag_value = $value['value'];
182 }
183 return $flag_value != '' ? array('value' => $flag_value, 'cookie_value' => $needle ) : array('value' => $defaultValue, 'cookie_value' => $defaultValue );
178 } 184 }
179 185
180 public function checkFlag($flag, $defaultValue, $driver = 'cookie'){ 186 public function checkFlag($flag, $defaultValue, $driver = 'cookie'){
......
...@@ -18,7 +18,7 @@ class Flags{ ...@@ -18,7 +18,7 @@ class Flags{
18 $flagManager = new FlagManager(); 18 $flagManager = new FlagManager();
19 $flag = $flagManager->getFlag($flagName, $encrypted); 19 $flag = $flagManager->getFlag($flagName, $encrypted);
20 if(!$flag) return null; 20 if(!$flag) return null;
21 return $flagManager->checkFlag($flag, $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null)); 21 return $flagManager->checkFlag($flag, $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null))['value'];
22 } 22 }
23 23
24 /** 24 /**
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!