* @param $flag XXX
* @return VOID
*/
- public function addFlag($flag)
+ public function addFlag($flag)
{
if (!$flag) return;
if (!$this->hasflag($flag)) {
* @param $flag XXX
* @return 1 || 0
*/
- public function hasFlag($flag)
+ public function hasFlag($flag)
{
$tok = strtok($this->value,$this->sep);
while ($tok) {
return 0;
}
+ /** test flag combination
+ */
+ public function hasFlagCombination($flag)
+ {
+ $perms = explode(',', $flag);
+ foreach ($perms as $perm)
+ {
+ $ok = true;
+ $rights = explode(':', $perm);
+ foreach ($rights as $right) {
+ if (($right{0} == '!' && $this->hasFlag(substr($right, 1))) || !$this->hasFlag($right)) {
+ $ok = false;
+ }
+ }
+ if ($ok) {
+ return true;
+ }
+ }
+ return false;
+ }
/** remove flag
* @param $flag XXX
* @return VOID
*/
- public function rmFlag($flag)
+ public function rmFlag($flag)
{
if (!$flag) return;
$newvalue = "";
{
return $this->value;
}
-}
+}
// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
?>