a537571a by Joshua Tundag

fix

1 parent 0d9dd429
...@@ -156,7 +156,7 @@ class FlagManager { ...@@ -156,7 +156,7 @@ 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($value['name'], $value['value'], time() + (86400 * 30), "/");
160 } 160 }
161 } 161 }
162 162
...@@ -172,11 +172,15 @@ class FlagManager { ...@@ -172,11 +172,15 @@ class FlagManager {
172 172
173 public function checkFlag($flag, $defaultValue, $driver = 'cookie'){ 173 public function checkFlag($flag, $defaultValue, $driver = 'cookie'){
174 $this->checkDir(); 174 $this->checkDir();
175 $flagEncryptedName = $flag['encrypted_name']; 175 $flagName = $flag['encrypted_name'];
176 // Cookie Driver 176 $value = !empty($_GET[$flagName]) ? $this->filterFlag($flag, $_GET[$flagName], $defaultValue) : null;
177 if($driver == 'cookie') return !empty($_GET[$flagEncryptedName]) ? $this->filterFlag($flag, $_GET[$flagEncryptedName], $defaultValue) : (!empty($_COOKIE[$flagEncryptedName]) ? $this->filterFlag($flag, $_COOKIE[$flagEncryptedName], $defaultValue) : $defaultValue); 177 if(isset($flag['both_usable']) && $flag['both_usable'] && (!empty($_GET[$flag['name']]) || !empty($_COOKIE[$flag['name']]))){
178 // Session Driver 178 $value = !empty($_GET[$flag['name']]) ? $this->filterFlag($flag, $_GET[$flag['name']], $defaultValue) : $value;
179 return !empty($_GET[$flagEncryptedName]) ? $this->filterFlag($flag, $_GET[$flagEncryptedName], $defaultValue) : ($_SESSION[$flagEncryptedName] ? $this->filterFlag($flag, $_SESSION[$flagEncryptedName], $defaultValue) : $defaultValue); 179 }
180 return [
181 'name' => $flag['encrypted_name'],
182 'value' => $value ? $value : (!empty($_COOKIE[$flag['encrypted_name']]) ? $this->filterFlag($flag, $_COOKIE[$flag['encrypted_name']], $defaultValue) : $defaultValue),
183 ];
180 } 184 }
181 185
182 private function filter($flag, $value, $default){ 186 private function filter($flag, $value, $default){
...@@ -193,7 +197,7 @@ class FlagManager { ...@@ -193,7 +197,7 @@ class FlagManager {
193 $flags = $this->all(); 197 $flags = $this->all();
194 if(!$flags) return []; 198 if(!$flags) return [];
195 $filteredFlags = array_values(array_filter($flags, function($f) use ($flag, $encrypted){ 199 $filteredFlags = array_values(array_filter($flags, function($f) use ($flag, $encrypted){
196 if(isset($f['both_usable']) && $f['both_usable']) return $f['encrypted_name'] == $flag || $f['name'] == $flag; 200 if(isset($f['both_usable']) && $f['both_usable']) return in_array($flag, [$f['encrypted_name'], $f['name']]);
197 return (($encrypted && $f['encrypted_name'] == $flag) || (!$encrypted && $f['name'] == $flag)); 201 return (($encrypted && $f['encrypted_name'] == $flag) || (!$encrypted && $f['name'] == $flag));
198 })); 202 }));
199 return count($filteredFlags) ? $filteredFlags[0] : null; 203 return count($filteredFlags) ? $filteredFlags[0] : null;
......
...@@ -18,7 +18,10 @@ class Flags{ ...@@ -18,7 +18,10 @@ 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 $flagFromStorage = self::findFlagFromStorage($encrypted ? $flagName : $flag['encrypted_name'], $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null), $driver); 21 if(isset($flag['both_usable']) && $flag['both_usable']){
22 $flagName = $flag['encrypted_name'];
23 }
24 $flagFromStorage = self::findFlagFromStorage($flagName, $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null), $driver);
22 if(!$flag['is_filtered']) return $flagFromStorage; 25 if(!$flag['is_filtered']) return $flagFromStorage;
23 26
24 $filteredFlag = null; 27 $filteredFlag = null;
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!