Пример #1
0
 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 {
Пример #2
0
        $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";
Пример #3
0
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;
}
Пример #6
0
     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();