/** * @covers spriebsch\MVC\Request::__construct * @covers spriebsch\MVC\Request::__call */ public function testHasGetReturnsFalseForEmptyGetValue() { $request = new Request(array('key' => '')); $this->assertFalse($request->hasGet('key')); }
/** * 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; }
/** * 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; }