public function execute(Context $context)
 {
     $session = new Session();
     $session->destroy();
     $response = new Response();
     return $response->redirect(url());
 }
 public function execute(Context $context)
 {
     $session = new Session();
     $response = new Response();
     $session->start();
     if ($session->valid()) {
         return $response->redirect(url());
     }
     $username = $context->get('username');
     $password = $context->get('password');
     if (isset($username) && isset($password)) {
         $mapper = new UserMapper();
         $user = new User();
         $user->setUsername($username);
         $mapper->find($user);
         if (hash('sha256', $password) == $user->getPassword()) {
             $session->validate($context);
             return $response->redirect(url());
         }
         throw new AccessDeniedException('Incorrect username or password');
     }
     $template = new Template('Nigel:WebsitePackage:html', array('title' => 'Login', 'page' => new Template('Nigel:WebsitePackage:login:login', array('action' => url('login')))));
     $template->addStyle('Nigel:WebsitePackage:default');
     $template->addScript('Nigel:WebsitePackage:default');
     return $response->content($template->render());
 }
 public function execute(Context $context)
 {
     $code = $context->get('code');
     $uri = $context->get('uri');
     $message = $context->get('message');
     $level = $code < 500 ? 'warning' : 'error';
     $protocol = $context->get('SERVER_PROTOCOL');
     switch ($code) {
         case HttpError::ACCESS_DENIED:
             $title = '403: Forbidden';
             $realMessage = "Access denied. {$message}";
             $status = "{$protocol} 403 Forbidden";
             break;
         case HttpError::NOT_FOUND:
             $title = '404: Not Found';
             $realMessage = "The page {$uri} could not be found.";
             $status = "{$protocol} 404 Not Found";
             break;
         default:
             $title = '500: Internal Server Error';
             $realMessage = "The server encountered an error: {$message}";
             $status = "{$protocol} 500 Internal Server Error";
     }
     $httpError = new HttpError(array('title' => $title, 'code' => $code, 'uri' => $uri, 'message' => $realMessage, 'level' => $level));
     $template = new Template('::base', array('title' => $httpError->getTitle(), 'content' => new Template('::HttpError:View', (array) $httpError), 'level' => $httpError->getLevel()));
     $template->addStyle('::normalize')->addStyle('::layout')->addStyle('::typography')->addStyle('::color');
     $response = new Response($template->render());
     return $response->status($status);
 }
 private function send(Response $response, Context $context)
 {
     if (!isset($response->status)) {
         $response->status($context->get('SERVER_PROTOCOL') . ' 200 OK');
     }
     $response->send();
     exit;
 }
 public function execute(Context $context)
 {
     $mapper = new PageMapper();
     $page = new Page();
     $response = new Response();
     $title = $context->get('title');
     $content = $context->get('content');
     if (isset($title) && isset($content)) {
         $page->setTitle($title);
         $page->setContent($content);
         $mapper->create($page);
         return $response->redirect(url('page', $page->getId()));
     }
     $template = new Template('Nigel:WebsitePackage:html', array('title' => 'Create new page', 'page' => new Template('Nigel:WebsitePackage:page:edit', array('title' => '', 'content' => '', 'action' => url('page', 'create')))));
     $template->addStyle('Nigel:WebsitePackage:default');
     $template->addScript(array('Nigel:WebsitePackage:default', 'Nigel:WebsitePackage:jquery', 'Nigel:WebsitePackage:ckeditor:ckeditor', 'Nigel:WebsitePackage:editor'));
     return $response->content($template->render());
 }