<?php 

// ini_set('display_startup_errors',1);
// ini_set('display_errors',1);
// error_reporting(-1);

    use function MongoDB\BSON\{toJSON, fromPHP};

    use MongoDB\BSON\{Regex, UTCDatetime, Timestamp, ObjectID, Javascript};
    use MongoDB\Driver\{Query, Manager, Command, BulkWrite, Cursor, WriteConcern, WriteResult, ReadPreference, ReadConcern};
    use MongoDB\Driver\Exception\{Exception, ConnectionException, InvalidArgumentException};
?>

<html>
<head>
<title>Log In</title>
<meta charset="utf-8" />
</head>
<body>

<?php
require_once('../lib/_autoload.php');


if($_GET["clear"] == 1) {
    $logout = new \SimpleSAML\Auth\Simple('gsb-sp');
 
    $logout->logout(array(
        'ReturnTo' => 'https://uat-wisdom.wisimo.com/simplesaml/login.php',
        'ReturnStateParam' => 'LogoutState',
        'ReturnStateStage' => 'MyLogoutState',
    ));
}


$as = new \SimpleSAML\Auth\Simple('gsb-sp');

$as->requireAuth();

if(!$as->isAuthenticated()){
    # Send a passive authentication request.

    $url = \SimpleSAML\Module::getModuleURL('core/authenticate.php', ['as' => 'gsb-sp']);
    
    $params = [
        'ErrorURL' => $url,
        'ReturnTo' => $url
    ];

   $as->login($params);

}else{

    $attr = $as->getAttributes();
    

    // var_dump($attr);exit;
    // $attr["UPN"] = $attr["FirstName"][0];
    // $attr["Surname"] = $attr["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"];

    // unset($attr["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"]);
    // unset($attr["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"]);
    

    $bulk = new MongoDB\Driver\BulkWrite;


    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < 100; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }

    $token = $randomString;

    
    $document1 = $attr;
    $document1['access_token'] = $token;
    
    $_id1 = $bulk->insert($document1);
    
    $manager = new MongoDB\Driver\Manager('mongodb://web_uat_wisdom:1Qaz2Wsx3Edc!@psmg01:3000,psmg02:3000,psmg03:3000/wisdom_uat?serverSelectionTryOnce=false&serverSelectionTimeoutMS=1');
    $writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 100);

    $result = $manager->executeBulkWrite('wisdom_uat.adfs_access_token', $bulk, $writeConcern);
 
    $redirect_to = 'https://uat-wisdom.wisimo.com/adfs/access_token/'.$token;



    $logout = new \SimpleSAML\Auth\Simple('gsb-sp');
 
    $logout->logout(array(
        'ReturnTo' => $redirect_to,
        'ReturnStateParam' => 'LogoutState',
        'ReturnStateStage' => 'MyLogoutState',
    ));

    // header('Location:'.$redirect_to );
}

    ?>
</body>
</html>
