Пример #1
0
function login($db, $email, $password)
{
    global $config;
    restartSession();
    $query = "SELECT * FROM `user` WHERE (`officialEmail` = ? OR `alternativeEmail` = ?)";
    $stmt = $db->prepare($query);
    $stmt->execute(array($email, $email));
    while ($row = $stmt->fetchObject()) {
        $passwordMd5 = computePasswordMD5($password, $row->salt);
        $genericMd5 = computePasswordMD5($password, "");
        if ($passwordMd5 === $row->passwordMd5 || $genericMd5 == $config->teacherInterface->genericPasswordMd5) {
            if ($row->officialEmail === $email && $row->officialEmailValidated === "1" || $row->validated === "1") {
                saveLoginDate($db, $row->ID);
                $_SESSION["userID"] = $row->ID;
                $_SESSION["isAdmin"] = $row->isAdmin;
                if ($row->isAdmin) {
                    $_SESSION["userType"] = "admin";
                } else {
                    $_SESSION["userType"] = "user";
                }
                echo jsonUser($db, $row);
                return;
            } else {
                $message = "<p>Vos identifiants sont valides mais votre adresse email académique n'a pas encore été validée. Vous avez dû recevoir un mail après votre inscription avec un lien de validation, vérifiez éventuellement dans les courriers indésirables de votre boîte mail. Si vous n'avez rien reçu, ou si vous n'avez pas d'adresse académique qui fonctionne, contactez nous : " . $config->email->sInfoAddress . "</p>";
                echo json_encode(array("success" => false, "message" => $message));
                return;
            }
        }
    }
    echo json_encode(array("success" => false));
}
Пример #2
0
function loadPublicGroups($db)
{
    restartSession();
    $stmt = $db->prepare("SELECT `group`.`name`, `group`.`code`, `contest`.`year`, `contest`.`level` " . "FROM `group` JOIN `contest` ON (`group`.`contestID` = `contest`.`ID`) WHERE `isPublic` = 1 AND `contest`.`status` <> 'Hidden'");
    $stmt->execute(array());
    $groups = array();
    while ($row = $stmt->fetchObject()) {
        $groups[] = $row;
    }
    echo json_encode(array("success" => true, "groups" => $groups, "SID" => session_id()));
}
Пример #3
0
function initSession()
{
    session_name('contest2');
    if (isset($_POST["SID"]) && $_POST["SID"] != "") {
        session_id($_POST["SID"]);
    }
    session_start();
    if (!isset($_SESSION['CREATED'])) {
        $_SESSION['CREATED'] = time();
    } else {
        if (time() - $_SESSION['CREATED'] > 3600) {
            restartSession();
        }
    }
}
Пример #4
0
function initSession($config)
{
    if ($config->aws->dynamoSessions == true) {
        initSessionDynamoDB($config);
    }
    session_name('contest2');
    if (isset($_POST["SID"]) && $_POST["SID"] != "null") {
        session_id($_POST["SID"]);
    }
    session_start();
    if (!isset($_SESSION['CREATED'])) {
        $_SESSION['CREATED'] = time();
    } else {
        if (time() - $_SESSION['CREATED'] > 3600) {
            restartSession();
        }
    }
}