Example #1
0
 /**
  * @covers spriebsch\MVC\Request::__construct
  * @covers spriebsch\MVC\Request::__call
  */
 public function testHasGetReturnsFalseForEmptyGetValue()
 {
     $request = new Request(array('key' => ''));
     $this->assertFalse($request->hasGet('key'));
 }
Example #2
0
 /**
  * Returns controller name read from mvc_controller URL parameter
  * (POST has precedence over GET). If mvc_controller is not given,
  * falls back to default controller.
  *
  * @param Request $request
  * @return null
  */
 public function route($request)
 {
     // Fallback: route to default controller and action.
     $controller = $this->getDefaultController();
     // GET parameter overrides the default controller.
     if ($request->hasGet('mvc_controller')) {
         $controller = $request->get('mvc_controller');
     }
     // POST parameter overrides GET parameter.
     if ($request->hasPost('mvc_controller')) {
         $controller = $request->post('mvc_controller');
     }
     return $controller;
 }
Example #3
0
 /**
  * Returns controller name read from mvc_controller URL parameter
  * (POST has precedence over GET). If mvc_controller is not given,
  * falls back to default controller.
  *
  * @param Request $request
  * @return null
  * @todo currently only cares about first role. Make work for array of roles.
  */
 public function getControllerName(Request $request)
 {
     // Fallback: route to default controller and action.
     $controllerName = $this->defaultControllerName;
     // GET parameter overrides the default controller.
     if ($request->hasGet('mvc_controller')) {
         $controllerName = $request->get('mvc_controller');
     }
     // POST parameter overrides GET parameter.
     if ($request->hasPost('mvc_controller')) {
         $controllerName = $request->post('mvc_controller');
     }
     $roles = $this->authenticationAdapter->getRoles();
     $role = $roles[0];
     // If that controller is not allowed, select authentication controller.
     if (!$this->acl->isAllowed($role, $controllerName)) {
         $controllerName = $this->authenticationControllerName;
     }
     // @todo remember selected controller & action to back-direct later
     // @todo either redirect to auth controller (for anonymous) OR FAIL?
     return $controllerName;
 }