public static function run() { Autoloader::init(); $session = SessionFactory::create(); $session->setTime('864000'); //24 hs $session->start(); $requestHandler = RequestHandlerFactory::create(); $requestHandler->handle($_REQUEST); }
public function execute() { //Session User ID $session = SessionFactory::create(); $userId = $session->get('session-user-id'); //Request Handler $requestHandler = RequestHandlerFactory::create(); $selectedActionKey = $requestHandler->getSelectedActionKey(); //Datahandler $datahandler = DatahandlerFactory::create('D_ReadAllowedRoles'); $datahandler->setInData(array('action-name' => $selectedActionKey, 'user-id' => $userId, 'admin-role-id' => 1)); $allowedRoles = $datahandler->getOutData(); $isAuthorize = $allowedRoles != array(); if ($isAuthorize) { $session->set("authorized", true); } else { $session->set("authorized", false); } }
public function execute() { //SESSION $session = SessionFactory::create(); if ($session->get("authenticated") == null) { $session->set("authenticated", false); } if ($session->get("authorized") == null) { $session->set("authorized", false); } //ACTIONS $actions = ActionFactory::create(); //REQUESTHANDLER AND SELECTACTIONKEY $requestHandler = RequestHandlerFactory::create(); $selectedActionKey = $requestHandler->getSelectedActionKey(); //VALIDATOR $validator = ValidatorFactory::create(); //REDIRECTOR $redirector = RedirectorFactory::create(); ////LOGICA DE AUTENTICACIÓN Y AUTORIZACIÓN: //Si no está autenticado se ejecuta la acción de autenticación //, esto podría ser también si selecciona Authenticate $validator->ifFalse($session->get("authenticated"))->execute($actions['A_Authenticate']); //Si selecciona Logout Action se le permite ejecutar siempre. $validator->ifTrue($selectedActionKey == 'A_Logout')->execute($actions['A_Logout']); //Si después de ser autenticado entra aquí no está autenticado //se ejecuta Logout: $validator->ifFalse($session->get("authenticated"))->execute($actions['A_Logout']); //Si está autenticado y no autorizado se ejecuta la acción de autorización //(siempre se debe autorizar, para que esto sea más eficiente armar un cache en //session con las acciones autorizadas) $actions['A_Authorize']->execute(); //Si está autenticado y no autorizado: // $validator->ifFalse( $authorizer->isAuthorized() ) $validator->ifFalse($session->get("authorized"))->respond(NO_AUTHORIZED_ACTION); /*Si está autenticado y autorizado y quiere ejecutar login lo redirijo a default a default action:*/ $validator->ifTrue($selectedActionKey == "A_Authenticate")->redirectTo('index.php?A_EnterFilterDataForm'); //Si está autenticado y autorizado y ejecuta una acción no existente $validator->ifFalse(array_key_exists($selectedActionKey, $actions))->respond($selectedActionKey . " " . NOT_IMPLEMENTED); //Si está autenticado y autorizado y ejecuta una acción existente $actions[$selectedActionKey]->execute(); }