public function delete()
 {
     $hash = $this->session->getHash();
     if (false !== ($session = $this->userSessions->findOneByHash($hash))) {
         $session->delete();
     }
 }
 /**
  * @param string $name service identifier
  * @param \Janeiro\Di\Container $container
  */
 public function register($name, Container $container)
 {
     $session = new Session(hash('MD5', uniqid('', true)));
     if (isset($_SERVER[self::HEADER_SESSION_HASH])) {
         $hash = $_SERVER[self::HEADER_SESSION_HASH];
         if (preg_match(self::MATCH_MD5, $hash)) {
             $session->setHash($hash)->start();
         }
     }
     $container->set($name, $session);
 }
 /**
  * Validate login credentials
  *
  * @param string $username
  * @param string $password
  * @return bool
  */
 public function validate($username, $password)
 {
     $success = false;
     $this->users->select([['column' => 'username', 'value' => $username], ['column' => 'deleted', 'value' => false]]);
     if (count($this->users) === 1) {
         /** @var \Core\Persistence\Entity\User $user */
         $user = $this->users->current();
         if ($password === hash('SHA512', $user->getPassword() . $this->session->getHash())) {
             $success = true;
         }
     }
     return $success;
 }
 /**
  * @param \Janeiro\Request\AbstractRequest
  * @template Index.phtml
  * @return string
  */
 public function indexAction(AbstractRequest $request)
 {
     $this->view->set('locale', $request->getLanguage());
     $this->view->set('hash', $this->session->getHash());
     return $this->view->render();
 }