Ejemplo n.º 1
0
 public function isGranted($permittedGrant, $userGrants = null, $userRole = null)
 {
     if ($userGrants) {
         $userGrants = ArrayTools::convertToKeyArray($userGrants);
     } elseif ($userRole) {
         $userGrants = $this->config->roles[$userRole]->getGrants();
     } elseif (!$userGrants) {
         $userRole = $this->getAccount()->role;
         if (!$userRole) {
             return false;
         }
         $userGrants = $this->config->roles[$userRole]->getGrants();
     }
     return isset($userGrants['*']) || isset($userGrants[$permittedGrant]);
 }
 public function loadValuesFrom($arrayOrObjectOrArrayFilter, $exclude = null)
 {
     if ($arrayOrObjectOrArrayFilter instanceof ArrayFilter) {
         $arrayOrObjectOrArrayFilter = $arrayOrObjectOrArrayFilter->getData();
     }
     if ($exclude !== null) {
         $exclude = ArrayTools::convertToKeyArray($exclude);
     }
     if (is_array($arrayOrObjectOrArrayFilter)) {
         foreach ($this->constraints as $name => $constraint) {
             if ($exclude !== null && isset($exclude[$name])) {
                 continue;
             }
             $constraint->value = isset($arrayOrObjectOrArrayFilter[$name]) ? $arrayOrObjectOrArrayFilter[$name] : null;
         }
     } else {
         foreach ($this->constraints as $name => $constraint) {
             if ($exclude !== null && isset($exclude[$name])) {
                 continue;
             }
             $constraint->value = isset($arrayOrObjectOrArrayFilter->{$name}) ? $arrayOrObjectOrArrayFilter->{$name} : null;
         }
     }
 }
Ejemplo n.º 3
0
 public function setMatchUrl($url)
 {
     if (preg_match('!^([a-zA-Z,]+)@!', $url, $urlData)) {
         $url = substr($url, strlen($urlData[0]));
         $this->methods = ArrayTools::convertToKeyArray(explode(',', strtoupper($urlData[1])));
     }
     $data = AppTools::decodeUri($url, $this->module->app, $this->module, $this->plugin);
     $url = '';
     if ($data[1]) {
         $url .= $data[1]->urlPrefix;
     } elseif ($data[0]) {
         $url .= $data[0]->urlPrefix;
     }
     $this->matchUrl = $url . $data[2];
     $this->_matchData = null;
 }
Ejemplo n.º 4
0
 /** @param StatusContainer|UiElement|string $status */
 public function status($status, $parameters = null)
 {
     $isStatusContainer = $status instanceof StatusContainer;
     $noStatus = $status === '' || $isStatusContainer && !$status->hasSuccessMessages && !$status->hasErrorMessages && !$status->hasInfoMessages;
     if ($noStatus && !ArrayTools::get($parameters, 'showIfEmpty')) {
         return '';
     }
     if ($isStatusContainer) {
         /** @var $status StatusContainer */
         $includeStatusCodes = ArrayTools::get($parameters, 'include');
         $excludeStatusCodes = ArrayTools::get($parameters, 'exclude');
         if (is_string($includeStatusCodes)) {
             $includeStatusCodes = array($includeStatusCodes);
         }
         if ($includeStatusCodes) {
             $includeStatusCodes = ArrayTools::convertToKeyArray($includeStatusCodes);
         }
         if (is_string($excludeStatusCodes)) {
             $excludeStatusCodes = array($excludeStatusCodes);
         }
         if ($excludeStatusCodes) {
             $excludeStatusCodes = ArrayTools::convertToKeyArray($excludeStatusCodes);
         }
         $element = new UiElement('div', array('class' => 'GroutStatusBox'));
         $this->processGenericParameters($element, $parameters);
         $c = '';
         $messages = array();
         foreach ($status->infoMessages as $code => $message) {
             if (($excludeStatusCodes === null || !isset($excludeStatusCodes[$code])) && ($includeStatusCodes === null || isset($includeStatusCodes[$code]))) {
                 $messages[] = $message;
             }
         }
         if ($messages) {
             $c .= $this->statusInfo($messages);
         }
         $messages = array();
         foreach ($status->successMessages as $code => $message) {
             if (($excludeStatusCodes === null || !isset($excludeStatusCodes[$code])) && ($includeStatusCodes === null || isset($includeStatusCodes[$code]))) {
                 $messages[] = $message;
             }
         }
         if ($messages) {
             $c .= $this->statusSuccess($messages);
         }
         $messages = array();
         foreach ($status->errors as $code => $message) {
             if (($excludeStatusCodes === null || !isset($excludeStatusCodes[$code])) && ($includeStatusCodes === null || isset($includeStatusCodes[$code]))) {
                 $messages[] = $message;
             }
         }
         if ($messages) {
             $c .= $this->statusError($messages);
         }
         $element->contents = $c;
     } else {
         $element = new UiElement('div', array('class' => 'GroutStatusBox'), $status);
         $this->processGenericParameters($element, $parameters);
     }
     return $element;
 }