/** Metodo que tem a funcao de verificar a permissao de cada acao **/
 public function actionPermission($action)
 {
     if ($action->getAuthentication() == true && !isset($_SESSION["id"])) {
         $action->setName("loginForm");
         $action->setType("ForwardAction");
         $action->setRole("");
         $action->setSSL("true");
         $action->setAuthentication("false");
         $action->setForwards(array("success" => ".showLoginForm"));
         $forwardAction = new ForwardAction();
         $forwardAction->execute($action);
     } else {
         return true;
     }
 }
 public function execute($action)
 {
     //error_reporting(E_ALL);
     //ini_set("display_errors", 1);
     $forwards = $action->getForwards();
     $strJson = str_replace('\\', '', $_POST['json']);
     $json = json_decode(utf8_encode($strJson));
     $data = $json->{'logindata'};
     $sucess = false;
     $createdUser = false;
     if (!is_null($data->{'email'})) {
         $user = $this->dao->getUserByEmail($data->{'email'});
         if (!$user) {
             //  Store a new user
             $user = new User();
             $user->setName($data->{'name'});
             $user->setEmail($data->{'email'});
             $user->setPassword($data->{'passoword'});
             if ($data->{'roomCreator'} == 'F0') {
                 $user->setRoomcreator(true);
             } else {
                 $user->setRoomcreator(false);
             }
             // Saving a new user
             $this->dao->saveNewUser($user);
             $createdUser = true;
         }
         //else{
         //TODO verificar a senha
         //}
         // Store data in PHP SESSION
         if ($user) {
             $sucess = true;
             $_SESSION['id'] = $user->getUserId();
             $_SESSION['name'] = $user->getName();
             $_SESSION['roomCreator'] = $user->getRoomcreator();
             $_SESSION['email'] = $user->getEmail();
             $_SESSION['user'] = $user;
         } else {
             //TODO ajustar quando o login nao funciona
             $sucess = false;
             $_REQUEST["errorMsg"] = $this->message->getText("error.loginFail");
             $this->pageController->run($forwards['error']);
         }
     } else {
         //TODO ajustar quando o login nao funciona
         $sucess = false;
         $_REQUEST["errorMsg"] = $this->message->getText("error.loginFail");
         $this->pageController->run($forwards['error']);
     }
     if ($createdUser == true) {
         // Verifica se o usuario foi criado, se sim, manda para uma pagina de sucesso
         $action = new ActionMapping();
         $action->setName("createdUserSuccess");
         $action->setType("ForwardAction");
         $action->setRole("");
         $action->setForwards(array("success" => ".createdUserSuccess"));
         $forwardAction = new ForwardAction();
         $forwardAction->execute($action);
     } else {
         if ($sucess) {
             $_REQUEST["msg"] = "Sua conta foi criada com sucesso no Quadro Branco, por favor, volte e entre novamente";
             $action = new ActionMapping();
             $action->setName("listRoons");
             $action->setType("ListRoonsAction");
             $action->setRole("");
             $action->setForwards(array("success" => ".showUserPage", "error" => ".error"));
             $listRoonsAction = new ListRoonsAction();
             $listRoonsAction->execute($action);
         }
     }
 }
 public function execute($action)
 {
     if (isset($_SESSION["idRoom"])) {
         // Setting the room state to off
         $this->dao->updateRoomState($_SESSION["idRoom"], false, 0);
     }
     unset($_SESSION['id']);
     unset($_SESSION['name']);
     unset($_SESSION['user']);
     session_destroy();
     $action = new ActionMapping();
     $action->setName("loginForm");
     $action->setType("ForwardAction");
     $action->setRole("");
     $action->setForwards(array("success" => ".showLoginForm", "error" => ".error"));
     $forwardAction = new ForwardAction();
     $forwardAction->execute($action);
 }