示例#1
0
 /**
  * After the request has been processed, get the response
  * body and cache it
  * @param Http\Response $response
  * @param Http\Request $request
  */
 public function postProcess(Http\Response $response, Http\Request $request)
 {
     if (!$this->isCached) {
         Edge::app()->logger->debug("Creating page cache for " . $request->getRequestUrl());
         $this->set($response->body);
     }
     return true;
 }
示例#2
0
 public function preProcess(Http\Response $response, Http\Request $request)
 {
     if (Edge::app()->user()->isGuest()) {
         if ($request->is("GET")) {
             Edge::app()->session->redirectUrl = $request->getRequestUrl();
         }
         if ($request->isAjax()) {
             throw new Unauthorized("Unauthorized access");
         }
         $response->redirect($this->url);
     }
 }
示例#3
0
 public function preProcess(Http\Response $response, Http\Request $request)
 {
     if (!$request->is('GET')) {
         $tokenName = $this->tokenName;
         $body = $request->getParams();
         if (!isset($body[$tokenName])) {
             throw new BadRequest("The body does not contain a CSRF token");
         }
         if ($body[$tokenName] != $request->getCsrfToken()) {
             throw new BadRequest("The specified CSRF token is not valid");
         }
         return true;
     }
 }
示例#4
0
 public function preProcess(Http\Response $response, Http\Request $request)
 {
     if ($this->user->isAdmin()) {
         if (!$this->permissions) {
             Edge::app()->logger->warn("No permissions defined for URL " . Edge::app()->request->getRequestUrl());
         }
         return true;
     }
     if (!$this->permissions) {
         throw new EdgeException("No permissions defined for URL " . Edge::app()->request->getRequestUrl());
     }
     foreach ($this->permissions as $perm) {
         if ($this->user->hasPrivilege($perm)) {
             return true;
         }
     }
     throw new Forbidden("User has not the privilege to invoke " . $request->getRequestUrl());
 }