public function execute($action)
 {
     $msgs = Localization::getInstance();
     $forwards = $action->getForwards();
     //$_POST["course"] = "1";
     //$_POST['manager'] = "*****@*****.**";
     //$_POST["name"] = "Coordenador do Curso";
     //$_POST["email"] ="*****@*****.**";
     $roomCourse = $_POST["course"];
     $roomManager = $_POST['manager'];
     $userName = utf8_decode($_POST["name"]);
     $userEmail = $_POST["email"];
     $userPasswordEduquito = "mude";
     if (!empty($roomCourse) && !empty($roomManager) && !empty($userName) && !empty($userEmail)) {
         // CHECKING USER IN EDUQUITO
         $bdHost = "143.54.193.37";
         $bdUser = "******";
         $bdPassword = "******";
         $bdDataBase = "EduquitoCurso" . $roomCourse;
         // Connect to database
         $mysqli = mysqli_init();
         mysqli_options($mysqli, MYSQLI_OPT_CONNECT_TIMEOUT, 3);
         mysqli_real_connect($mysqli, $bdHost, $bdUser, $bdPassword, $bdDataBase);
         $eduquitoConnected = true;
         // Checks whether any errors occurred
         if (mysqli_connect_errno()) {
             $eduquitoConnected = false;
         }
         if ($eduquitoConnected) {
             $nameLoginEduquito = $userName;
             $emailLoginEduquito = $userEmail;
             // Prepares a SQL query
             if ($sql = $mysqli->prepare("SELECT `cod_usuario` FROM `Usuario` WHERE `email` = ? AND `nome` = ?")) {
                 $sql->bind_param('ss', $emailLoginEduquito, $nameLoginEduquito);
                 // Run the query
                 $sql->execute();
                 $i = 0;
                 $sql->bind_result($id);
                 while ($sql->fetch()) {
                     $i++;
                 }
                 if ($i >= 1) {
                     $permissionEduquito = true;
                 } else {
                     $permissionEduquito = false;
                 }
                 // Close query
                 $sql->close();
             }
             // Closes the connection to the database
             $mysqli->close();
         }
         if (!$eduquitoConnected || $permissionEduquito) {
             // CHECKING USER IN WHITEBOARD
             $user = $this->dao->login($userEmail, $userPasswordEduquito);
             if (count($user) <= 0) {
                 // Not in database, create new user
                 if (!empty($userEmail) && !empty($userName)) {
                     // Instantiates a new user;
                     $user = new User();
                     $user->setName($userName);
                     $user->setEmail($userEmail);
                     $user->setPassword($userPasswordEduquito);
                     $user->setRoomcreator(0);
                     $resultUser = $this->dao->saveNewUser($user);
                     $user = $this->dao->login($userEmail, $userPasswordEduquito);
                 }
             }
             if ($user->getName() != $userName) {
                 // Upadate user;
                 $resultUser = $this->dao->updateUserName($user->getUserId(), $userName);
             }
             // User contained in the database, loggin
             $_SESSION['id'] = $user->getUserId();
             $_SESSION['name'] = $user->getName();
             $_SESSION['roomCreator'] = $user->getRoomcreator();
             $_SESSION['email'] = $user->getEmail();
             $_SESSION['user'] = $user;
             // Verifies and creates, if necessary, the room of course
             $roomEduquito = $this->dao->getRoomByCourse($roomCourse);
             if (count($roomEduquito) <= 0) {
                 $roomName = "Sala do curso " . $roomCourse;
                 $_POST["name"] = $roomName;
                 $_POST["course"] = $roomCourse;
                 $_POST['idsSelecteds'] = $user->getUserId();
                 if ($user->getEmail() == $roomManager) {
                     $_SESSION['id'] = $user->getUserId();
                 } else {
                     $manager = $this->dao->login($roomManager, $userPasswordEduquito);
                     if (count($manager) <= 0) {
                         // Not in database, create new user coordinator
                         $manager = new User();
                         $manager->setName("Coordenador do curso");
                         $manager->setEmail($roomManager);
                         $manager->setPassword($userPasswordEduquito);
                         $manager->setRoomcreator(0);
                         $resultManager = $this->dao->saveNewUser($manager);
                         $manager = $this->dao->login($manager->getEmail(), $userPasswordEduquito);
                     }
                     $_SESSION['id'] = $manager->getUserId();
                 }
                 $createRoomAction = new CreateRoomAction();
                 $createRoomAction->execute($action);
                 $roomEduquito = $this->dao->getRoomByCourse($roomCourse);
                 $_SESSION['id'] = $user->getUserId();
             }
             // Checks permissions
             $permissions = $this->dao->listPermissions($roomEduquito->getRoomId());
             $havePermission = false;
             foreach ($permissions as $permission) {
                 if ($permission->getUserId() == $user->getUserId()) {
                     $havePermission = true;
                 }
             }
             if (!$havePermission) {
                 $permission = new Permission();
                 $permission->setUserId($user->getUserId());
                 $permission->setRoomId($roomEduquito->getRoomId());
                 $resultPermission = $this->dao->savePermission($permission);
             }
             $roomEduquito = $this->dao->getRoomByCourse($roomCourse);
             $_GET["idRoom"] = $roomEduquito->getRoomId();
             $_SESSION['eduquito'] = true;
             if ($roomEduquito->getActive() == 1) {
                 $joinRoomAction = new JoinRoomAction();
                 $joinRoomAction->execute($action);
             } else {
                 if ($user->getUserId() == $roomEduquito->getUserId()) {
                     $startRoomAction = new StartRoomAction();
                     $startRoomAction->execute($action);
                 } else {
                     unset($_SESSION['id']);
                     unset($_SESSION['name']);
                     unset($_SESSION['roomCreator']);
                     unset($_SESSION['email']);
                     unset($_SESSION['user']);
                     session_destroy();
                     // Closed room
                     echo "<script type='text/javascript'>";
                     echo "alert('" . $msgs->getText('error.eduquitoCloseRoom') . "');";
                     echo "history.go(-1);";
                     echo "</script>";
                 }
             }
         } else {
             // Without permission
             echo "<script type='text/javascript'>";
             echo "alert('" . $msgs->getText('error.eduquitoWithoutPermission') . "');";
             echo "history.go(-1);";
             echo "</script>";
         }
     } else {
         // Without permission
         echo "<script type='text/javascript'>";
         echo "alert('" . $msgs->getText('error.eduquitoInsufficientData') . "');";
         echo "history.go(-1);";
         echo "</script>";
     }
 }
 public function execute($action)
 {
     $forwards = $action->getForwards();
     // Checks if all fields were provided
     if (!empty($_POST['roomCode'])) {
         $roomCode = $_POST['roomCode'];
         // Get room;
         $room = $this->dao->getRoomByCode($roomCode);
         if (is_object($room)) {
             $_GET["idRoom"] = $room->getRoomId();
             // Join in room
             $joinRoomAction = new JoinRoomAction();
             $joinRoomAction->execute($action);
             $this->pageController->run($forwards['success']);
         } else {
             // Error if code ins't valid
             $_REQUEST["errorMsg"] = $this->message->getText("error.invalidCode");
             $this->pageController->run($forwards['error']);
         }
     } else {
         // Error if there are blank fields
         $_REQUEST["errorMsg"] = $this->message->getText("error.blankField");
         $this->pageController->run($forwards['error']);
     }
 }