コード例 #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();
        }
    }
}