if ($username == "") { $errors[] = lang("ACCOUNT_SPECIFY_USERNAME"); } if ($password == "") { $errors[] = lang("ACCOUNT_SPECIFY_PASSWORD"); } //End data validation if (count($errors) == 0) { // Continue with authentication $auth = new RedcapAuth($username, $password); // Valid credentials if ($auth->authenticated_user_id != Null) { // Log user in $loggedInUser = new RedcapPortalUser($auth->authenticated_user_id); unset($_SESSION[SESSION_NAME]['login_attempts']); setSessionUser($loggedInUser); //CHECK IF USER AGREED TO CONSENT YET if (!$loggedInUser->active) { $destination = "consent.php"; } else { $destination = getSessionRedirectOr($websiteUrl . 'dashboard/index.php'); } header("Location: {$destination}"); } else { // Invalid credentials //IF NOT A REGISTERED USER - KEEP EMAIL AND PREFILL ON REGISTER FORM $attempts_remaining--; $_SESSION[SESSION_NAME]['login_attempts'] = $attempts_remaining; if ($attempts_remaining < 1) { $errors[] = lang("FORGOTPASS_SUGGEST"); } else {
$status .= "Vos cookies de connexion sont erronés !"; $box = "alert alert-warning"; setcookie("username", "", time() - 3600, null, null, false, true); setcookie("passwd", "", time() - 3600, null, null, false, true); $form = true; } } else { //Si les variables POST sont définies, connexion, sinon affichage du formulaire de connexion if (isset($_POST["pseudo"]) and isset($_POST["pass"])) { //Variables définies, on cherche à savoir si le pseudo et le mot de passe existent et si ils sont bien reliés $pass = $_POST["pass"]; $cryptedPass = hash("sha256", $password_salt . $pass); $reponse = connexionMembre($_POST["pseudo"], $cryptedPass); //Si true, alors définir variables de session, et éventuellement les cookies if ($reponse == true) { setSessionUser($_POST["pseudo"]); if ($_SESSION["rank"] == 1) { $status .= "<i class=\"fa fa-times\"></i> Accès interdit, vous avez été banni par un administrateur :/<br />"; $box = "alert alert-danger"; $form = true; $_SESSION = array(); session_destroy(); setcookie("username", "", time() - 3600, null, null, false, true); setcookie("passwd", "", time() - 3600, null, null, false, true); } else { //Test si maintenance if (returnValueFromParam("maintenanceMode") == "true") { if ($_SESSION["rank"] < 5) { // Non admin $status .= "<i class=\"fa fa-times\"></i> Mode maintenance activé, seul un administrateur peut accéder au service :/<br />"; $box = "alert alert-danger";
function logout() { setSessionUser(NULL, NULL); $_SESSION['todolist'] = NULL; }
/** * Fonction permettant de vérifier si le formulaire de modification de profil est correct et si il ne contient pas d'erreurs. * @param User $user : l'utilisateur qui a fait la demande de changement de profil. * @return array : un tableau contenant tous les messages d'erreur liés au formulaire de changement de profil ou un booleen * si le formulaire est correct. */ function isValidForm(User $user) { $config = getConfigFile()['CONSTANTE']; $UserName = $_POST['userName']; $Email = $_POST['email']; $Mdp = $_POST['Mdp']; $MdpBis = $_POST['MdpBis']; $tel = $_POST['Tel']; $MdpActuel = $_POST['MdpActuel']; if ($Mdp == '') { $Mdp = NULL; $MdpBis = NULL; } $userTest = new User(array("UserName" => $UserName, "email" => $Email, "Mdp" => $Mdp, "tel" => $tel)); $tab = array("RETURN" => false, "ERROR" => array()); $nameValable = false; $emailValable = false; $mdpValable = false; $nameExistant = false; $mailExistant = false; $goodMdp = false; $boolean_name = false; $boolean_mdp = false; $mdpIdentique = false; $noMdp = false; $um = new UserManager(connexionDb()); $nameVerif = $um->getUserByUserName($userTest->getUserName()); if ($nameVerif->getUserName() != NULL && $user->getUserName() != $UserName) { $nameExistant = true; $tab['ERROR']['Name'] = "Nom déjà existant "; } if (champsEmailValable($Email)) { $emailValable = true; } else { $tab['ERROR']['EmailValable'] = "Votre email contient des caractères indésirables"; } if (champsEmailValable($UserName)) { $nameValable = true; } else { $tab['ERROR']['NameValable'] = "Votre nom d'utilisateur contient des caractères indésirables"; } $mailVerif = $um->getUserByEmail($userTest->getEmail()); if ($mailVerif->getUserName() != NULL && $user->getEmail() != $Email) { $mailExistant = true; $tab['ERROR']['Email'] = "Email déjà existant"; } if ($user->getMdp() == hash("sha256", $MdpActuel . $user->getSalt())) { $goodMdp = true; } else { $tab['ERROR']['MdpActuel'] = "Mauvais mot de passe actuel ! Annulation de la modification"; } if (isset($UserName) and strlen($UserName) >= $config['size_user_name']) { $boolean_name = true; } else { $tab['ERROR']['UserName'] = "******" . $config['size_user_name'] . ")"; } if (isset($Mdp) and isset($MdpBis) and $Mdp == $MdpBis and $Mdp != NULL) { if (strlen($Mdp) >= $config['size_user_mdp']) { $boolean_mdp = true; } else { $tab['ERROR']['Mdp'] = "Mots de passe trop court (min: " . $config['size_user_mdp'] . ")"; } if (champsMdpValable($Mdp)) { $mdpValable = true; } else { $tab['ERROR']['mdpValable'] = "Votre mot de passe contient des caractères indésirables"; } } else { $noMdp = true; } if (isset($Mdp) and isset($MdpBis) and $Mdp != $MdpBis) { $tab['ERROR']['Mdp'] = "Le mot de passe et le mot de passe de vérification sont différents"; } else { $mdpIdentique = true; } $tab['RETURN'] = ($boolean_mdp && $mdpValable || $noMdp and $boolean_name and !$nameExistant and !$mailExistant and $goodMdp && $mdpIdentique && $nameValable && $emailValable); if ($tab['RETURN']) { if (isset($UserName) and $userTest->getUserName() != $user->getUserName()) { $user->setUserName($UserName); } if (isset($Email) and $userTest->getEmail() != $user->getEmail()) { $user->setEmail($Email); } if (isset($Mdp) and strlen($Mdp) > 4 and hash("sha256", $userTest->getMdp() . $userTest->getSalt()) != $user->getMdp()) { $user->setMdp($Mdp); $user->setHashMdp(); } if (isset($tel) and $tel != $user->getTel()) { $user->setTel($tel); } $um->updateUserProfil($user); $userToReconnect = $um->getUserById($user->getId()); setSessionUser($userToReconnect); } return $tab; }
/** * Fonction vérifiant l'identité du membre et le connectant si il possède la bonne identité. * @return array : tableau de message d'erreur dans le cas où ses informations sont fausses, si il est banni ou encore * si il ne s'est pas activé. */ function doConnect() { $tabRetour = array(); $mdp = $_POST['mdp']; $userName = $_POST['userName']; $manager = new UserManager(connexionDb()); $tabUser = $manager->getAllUser(); $userToConnect = new User(array("UserName" => $userName, "Mdp" => $mdp)); $userFound = $manager->getUserByUserName($userName); /** * Je vérifie sur le user est dans la base de donnée et existe bel et bien */ $echec = false; if ($userFound->getId() != NULL) { foreach ($tabUser as $elem) { //$mdp == hash("sha256", $elem->getMdp()); //password_verify($mdp, $elem->getMdp()) if ($userName == $elem->getUserName() && hash("sha256", $userToConnect->getMdp() . $userFound->getSalt()) == $elem->getMdp()) { $echec = false; $userToConnect = $elem; $id = $elem->getId(); break; } else { $echec = true; } } } else { $echec = true; } /** * Je vérifie que le user n'a pas besoin de s'activer avant de se connecter, l'user pouvant avoir * deux code (inscription et mdp oublié), je vérifie que c'est bien le code d'inscription */ $needActi = false; $banni = false; if (isset($id)) { $acManager = new ActivationManager(connexionDb()); $act = $acManager->getActivationByLibelleAndId("Inscription", $id); if (isset($act) && $act->getCode() != NULL) { $needActi = true; } else { $needActi = false; } } $userToConnect = $manager->getUserById($userToConnect->getId()); if ($echec == true) { $tabRetour['Error'] = "<div class='alert alert-danger' role='alert'>Erreur lors de la connexion, veuillez rééssayer avec le bon login ou mot de passe !</div>"; } else { if ($userToConnect->getDroit()[0]->getId() == 6) { $tabRetour['Error'] = "<div class='alert alert-danger' role='alert'>Vous êtes banni, impossible de vous connecter !</div>"; $banni = true; } else { if ($needActi == true) { $tabRetour['Activation'] = "<div class='alert alert-danger' role='alert'>Vous devez activer votre compte avant la connexion !</div>"; } else { $user = $manager->getUserById($id); $manager->updateUserConnect($user); //$_SESSION['User'] = $user; setSessionUser($user); echo "Bienvenue sur EveryDayIdea !"; } } } $tabRetour['Retour'] = !$echec; $tabRetour['Valide'] = !$needActi; $tabRetour['Banni'] = !$banni; return $tabRetour; }
addUserPhoto(); break; case 'getUser': getUser(); break; case 'beginSession': beginSession(); break; case 'getSession': getSession(); break; case 'setSessionLanguage': setSessionLanguage(); break; case 'setSessionUser': setSessionUser(); break; case 'endSession': endSession(); break; case 'getSessionGestures': getSessionGestures(); break; case 'addSessionGesture': addSessionGesture(); break; case 'removeSessionGesture': removeSessionGesture(); break; case 'commitSessionGestures': commitSessionGestures();