a537571a by Joshua Tundag

fix

1 parent 0d9dd429
......@@ -156,7 +156,7 @@ class FlagManager {
if(!$flags) return [];
foreach($flags as $flag){
$value = $this->checkFlag($flag, !empty($flag['default']) ? $flag['default'] : null);
setcookie($flag['encrypted_name'], $value, time() + (86400 * 30), "/");
setcookie($value['name'], $value['value'], time() + (86400 * 30), "/");
}
}
......@@ -172,11 +172,15 @@ class FlagManager {
public function checkFlag($flag, $defaultValue, $driver = 'cookie'){
$this->checkDir();
$flagEncryptedName = $flag['encrypted_name'];
// Cookie Driver
if($driver == 'cookie') return !empty($_GET[$flagEncryptedName]) ? $this->filterFlag($flag, $_GET[$flagEncryptedName], $defaultValue) : (!empty($_COOKIE[$flagEncryptedName]) ? $this->filterFlag($flag, $_COOKIE[$flagEncryptedName], $defaultValue) : $defaultValue);
// Session Driver
return !empty($_GET[$flagEncryptedName]) ? $this->filterFlag($flag, $_GET[$flagEncryptedName], $defaultValue) : ($_SESSION[$flagEncryptedName] ? $this->filterFlag($flag, $_SESSION[$flagEncryptedName], $defaultValue) : $defaultValue);
$flagName = $flag['encrypted_name'];
$value = !empty($_GET[$flagName]) ? $this->filterFlag($flag, $_GET[$flagName], $defaultValue) : null;
if(isset($flag['both_usable']) && $flag['both_usable'] && (!empty($_GET[$flag['name']]) || !empty($_COOKIE[$flag['name']]))){
$value = !empty($_GET[$flag['name']]) ? $this->filterFlag($flag, $_GET[$flag['name']], $defaultValue) : $value;
}
return [
'name' => $flag['encrypted_name'],
'value' => $value ? $value : (!empty($_COOKIE[$flag['encrypted_name']]) ? $this->filterFlag($flag, $_COOKIE[$flag['encrypted_name']], $defaultValue) : $defaultValue),
];
}
private function filter($flag, $value, $default){
......@@ -193,7 +197,7 @@ class FlagManager {
$flags = $this->all();
if(!$flags) return [];
$filteredFlags = array_values(array_filter($flags, function($f) use ($flag, $encrypted){
if(isset($f['both_usable']) && $f['both_usable']) return $f['encrypted_name'] == $flag || $f['name'] == $flag;
if(isset($f['both_usable']) && $f['both_usable']) return in_array($flag, [$f['encrypted_name'], $f['name']]);
return (($encrypted && $f['encrypted_name'] == $flag) || (!$encrypted && $f['name'] == $flag));
}));
return count($filteredFlags) ? $filteredFlags[0] : null;
......
......@@ -18,7 +18,10 @@ class Flags{
$flagManager = new FlagManager();
$flag = $flagManager->getFlag($flagName, $encrypted);
if(!$flag) return null;
$flagFromStorage = self::findFlagFromStorage($encrypted ? $flagName : $flag['encrypted_name'], $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null), $driver);
if(isset($flag['both_usable']) && $flag['both_usable']){
$flagName = $flag['encrypted_name'];
}
$flagFromStorage = self::findFlagFromStorage($flagName, $defaultValue ? $defaultValue : (isset($flag['has_default']) && $flag['has_default'] ? $flag['default'] : null), $driver);
if(!$flag['is_filtered']) return $flagFromStorage;
$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!