Пример #1
0
 function allow($pattern, $action)
 {
     so_query::ensure($pattern);
     if ($this->check($pattern->uri, $action)) {
         return $this;
     }
     $this->storage[] = array('so_permit_pattern' => (string) $pattern, 'so_permit_action' => (string) $action);
     unset($this->list);
     return $this;
 }
Пример #2
0
 function match($subject)
 {
     so_query::ensure($subject);
     $iterP = $this->getIterator();
     $iterS = $subject->getIterator();
     while (true) {
         if (!$iterP->valid()) {
             return !$iterS->valid();
         }
         if (!$iterS->valid()) {
             return false;
         }
         if ($iterP->key() !== $iterS->key()) {
             return false;
         }
         if ($iterP->current()) {
             if ($iterP->current() !== $iterS->current()) {
                 return false;
             }
         }
         $iterP->next();
         $iterS->next();
     }
 }