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; } } }
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; }
/** @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; }