/** * Action to ask for extra information and to send the error report * @return null */ public function indexAction() { $zibo = Zibo::getInstance(); $session = Session::getInstance(); $recipient = $zibo->getConfigValue(Module::CONFIG_MAIL_RECIPIENT); $subject = $zibo->getConfigValue(Module::CONFIG_MAIL_SUBJECT); $report = $session->get(Module::SESSION_REPORT); if (!$report || !$recipient) { $this->response->setRedirect($this->request->getBaseUrl()); return; } $form = new ReportForm($this->request->getBasePath()); if ($form->isSubmitted()) { $comment = $form->getComment(); if ($comment) { $report .= "\n\nComment:\n" . $comment; } if (!$subject) { list($subject, $null) = explode("\n", $report, 2); } $mail = new Message(); $mail->setTo($recipient); $mail->setSubject($subject); $mail->setMessage($report); $mail->send(); $session->set(Module::SESSION_REPORT); $this->addInformation(self::TRANSLATION_MAIL_SENT); $this->response->setRedirect($this->request->getBaseUrl()); return; } $view = new ReportView($form, $report); $this->response->setView($view); }
/** * Constructs a new authenticator * @return null */ public function __construct() { parent::__construct(); $this->session = Session::getInstance(); $this->numVisitors = false; $this->numUsers = false; $this->currentUsers = false; }
/** * Checks if the provided node is collapsed in the tree * @param integer $nodeId Id of the node * @return boolean True if the node is collapsed, false if the node is expanded */ public static function isNodeCollapsed($nodeId) { $session = Session::getInstance(); $nodes = $session->get(self::SESSION_HIDDEN_NODES, array()); if (array_key_exists($nodeId, $nodes)) { return true; } return false; }
/** * Clears the authentification in the storage. When there is a user switch, only the authentication of the switched user should be cleared. * If there is no user switch, all authentication data should be cleared * @return null */ protected function clearAuthentification() { if ($this->getSwitchedUsername()) { $this->session->set(self::SESSION_SWITCHED_USERNAME, null); } else { $this->session->set(self::SESSION_USERNAME, null); $this->session->set(self::SESSION_AUTHENTICATION_STRING, null); } }
/** * Authenticate a user's session by it's id * @param string id of the user's session * @throws UnauthorizedException if the token is no longer valid */ public function authenticateSession($id) { $session = Session::getInstance(); if ($session->getId() != $id) { $session->load($id); } if (!$session->get(self::SESSION_AUTHENTICATED)) { throw new UnauthorizedException('You are no longer authorized because your session id or your session itself has become invalid.'); } }
public function testReset() { $session = Session::getInstance(); $session->set('key1', 'value1'); $session->set('key2', 'value2'); $sessionKey = Session::SESSION_NAME; $this->assertTrue(count($_SESSION[$sessionKey]) >= 2, 'session array has not at least the added elements'); $session->reset(); $this->assertTrue(isset($_SESSION[$sessionKey]), 'session array does not exist'); $this->assertTrue(count($_SESSION[$sessionKey]) == 0, 'session array is not empty'); }
/** * Stores the current site and node to the session * @return null */ public function postAction() { if ($this->site) { $this->session->set(self::SESSION_SITE, $this->site->id); } else { $this->session->set(self::SESSION_SITE); } if ($this->node) { $this->session->set(self::SESSION_NODE, $this->node->id); } else { $this->session->set(self::SESSION_NODE); } }
/** * Handle a exception, redirect to the error report form * @param Exception $exception * @return null */ public function handleException(Exception $exception) { if ($exception instanceof UnauthorizedException) { return; } $zibo = Zibo::getInstance(); $request = $zibo->getRequest(); $title = $this->getTitle($exception); $report = $this->getReport($exception, $request); $zibo->runEvent(Zibo::EVENT_LOG, $title, $report, 1, self::LOG_NAME); if (!$zibo->getConfigValue(self::CONFIG_MAIL_RECIPIENT)) { return; } Session::getInstance()->set(self::SESSION_REPORT, $title . "\n" . $report); $response = Zibo::getInstance()->getResponse(); $response->setView(null); $response->setRedirect($request->getBaseUrl() . '/report/error'); }
/** * This is the method that is called whenever an authentication is requested. If a token * exists, it will be used for all operations of the client. If it does not exist, the * authentication will be triggered * @return string|null The authentication token if set, null otherwise */ public function retrieve() { return Session::getInstance()->get($this->variableName); }
/** * Gets the locale of the localized content * @return string Code of the locale */ public static function isSidebarVisible() { return !Session::getInstance()->get(self::SESSION_SIDEBAR_HIDDEN, false); }
/** * Resets this wizard * @return null */ public function reset() { $this->session->set($this->name, array()); }
/** * Construct a new wizard form * @param string $action URL where the form will point to * @param string $name Name of the form * @return null */ public function __construct($action, $name) { parent::__construct($action, $name); $this->appendToClass(self::STYLE_WIZARD); $fieldFactory = FieldFactory::getInstance(); $previousButton = $fieldFactory->createSubmitField(self::BUTTON_PREVIOUS, self::TRANSLATION_PREVIOUS); $nextButton = $fieldFactory->createSubmitField(self::BUTTON_NEXT, self::TRANSLATION_NEXT); $cancelButton = $fieldFactory->createSubmitField(self::BUTTON_CANCEL, self::TRANSLATION_CANCEL); $finishButton = $fieldFactory->createSubmitField(self::BUTTON_FINISH, self::TRANSLATION_FINISH); $this->addField($previousButton); $this->addField($nextButton); $this->addField($cancelButton); $this->addField($finishButton); $this->steps = array(); $this->session = Session::getInstance(); }
/** * Creates a new nounce * @return null */ private function refreshNonce() { $this->nonce = uniqid(); Session::getInstance()->set(self::SESSION_NONCE, $this->nonce); }
/** * Stores the full URL of the current request as referer to the session * @return null */ private function setReferer() { $request = Zibo::getInstance()->getRequest(); $referer = $request->getBasePath() . $request->getParametersAsString(); Session::getInstance()->set(self::SESSION_REFERER, $referer); }
/** * Gets the locale of the localized content * @return string Code of the locale */ public static function getLocale() { $locale = I18n::getInstance()->getLocale(); return Session::getInstance()->get(self::SESSION_LOCALE, $locale->getCode()); }