Commit 4e0c3d3a authored by Sonia Zorba's avatar Sonia Zorba
Browse files

Changes for being compliant with new GDPR law

parent c02895f4
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -98,7 +98,10 @@ if ($user === null) {

    $user->addIdentity($identity);

    $userHandler->saveUser($user);
    $session->userToLogin = $user;
    $session->save();
    header('Location: ' . $BASE_PATH . '/tou-check');
    die();
}

$auditLog->info("LOGIN,Facebook," . $user->id);
+4 −1
Original line number Diff line number Diff line
@@ -92,7 +92,10 @@ if ($client->getAccessToken()) {

        $user->addIdentity($identity);

        $userHandler->saveUser($user);
        $session->userToLogin = $user;
        $session->save();
        header('Location: ' . $BASE_PATH . '/tou-check');
        die();
    }

    $auditLog->info("LOGIN,Google," . $user->id);
+4 −1
Original line number Diff line number Diff line
@@ -118,7 +118,10 @@ if ($info2['http_code'] === 200) {

        $user->addIdentity($identity);

        $userHandler->saveUser($user);
        $session->userToLogin = $user;
        $session->save();
        header('Location: ' . $BASE_PATH . '/tou-check');
        die();
    }

    $auditLog->info("LOGIN,LinkedIn," . $user->id);
+4 −1
Original line number Diff line number Diff line
@@ -57,7 +57,10 @@ if (isset($_SERVER['Shib-Session-ID'])) {

        $user->addIdentity($identity);

        $userHandler->saveUser($user);
        $session->userToLogin = $user;
        $session->save();
        header('Location: ' . $BASE_PATH . '/tou-check');
        die();
    }

    $auditLog->info("LOGIN,eduGAIN," . $user->id);
+31 −59
Original line number Diff line number Diff line
@@ -32,29 +32,14 @@
include '../../include/init.php';
startSession();

function saveUserFromX509Data($x509Data) {

    global $session, $userHandler;

    $user = new RAP\User();

    $identity = new RAP\Identity(RAP\Identity::X509);
    $identity->email = $x509Data->email;
    $identity->name = $x509Data->name;
    $identity->surname = $x509Data->surname;
    $identity->typedId = $x509Data->serialNumber;
    $identity->institution = $x509Data->institution;

    $user->addIdentity($identity);

    $userHandler->saveUser($user);
if (isset($_SERVER['SSL_CLIENT_VERIFY']) && isset($_SERVER['SSL_CLIENT_V_REMAIN']) &&
        $_SERVER['SSL_CLIENT_VERIFY'] === 'SUCCESS' && $_SERVER['SSL_CLIENT_V_REMAIN'] > 0) {

    $session->x509DataToRegister = null;
    $session->save();
    $x509Data = RAP\X509Data::parse($_SERVER);

    return $user;
}
    $user = $userHandler->findUserByIdentity(RAP\Identity::X509, $x509Data->serialNumber);

    if ($user === null) {
        /**
         * We want to extract name and surname from the X.509 certificate, however X.509
         * puts name and surname together (inside the CN field).
@@ -64,34 +49,21 @@ function saveUserFromX509Data($x509Data) {
         * the page views/x509-name-surname.php is shown to the user before completing the
         * registration, in order to allow him/her selecting the correct name and surname.
         */
if ($session->x509DataToRegister !== null && $session->x509DataToRegister->name !== null) {

    $user = saveUserFromX509Data($session->x509DataToRegister);
} else {

    if (isset($_SERVER['SSL_CLIENT_VERIFY']) && isset($_SERVER['SSL_CLIENT_V_REMAIN']) &&
            $_SERVER['SSL_CLIENT_VERIFY'] === 'SUCCESS' && $_SERVER['SSL_CLIENT_V_REMAIN'] > 0) {

        $x509Data = RAP\X509Data::parse($_SERVER);

        $user = $userHandler->findUserByIdentity(RAP\Identity::X509, $x509Data->serialNumber);

        if ($user === null) {

        if ($x509Data->name === null) {
            $session->x509DataToRegister = $x509Data;
            $session->save();
            header('Location: ' . $BASE_PATH . '/x509-name-surname');
                die();
        } else {
                $user = saveUserFromX509Data($x509Data);
            $session->userToLogin = $x509Data->toUser();
            $session->save();
            header('Location: ' . $BASE_PATH . '/tou-check');
        }
        die();
    } else {
        $auditLog->info("LOGIN,X.509," . $user->id);
        $callbackHandler->manageLoginRedirect($user, $session);
    }
} else {
    http_response_code(500);
    die("Unable to verify client certificate");
}
}

$auditLog->info("LOGIN,X.509," . $user->id);
$callbackHandler->manageLoginRedirect($user, $session);
Loading