<?php
namespace App\FHI360\Access\Suite\Security;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Security\Core\Security;
use App\FHI360\Access\Suite\Service\APISuiteCRM;
use Symfony\Component\Security\Http\Logout\LogoutHandlerInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use \Curl\Curl;
class SuiteCRMLogoutHandler implements LogoutHandlerInterface
{
public function __construct(APISuiteCRM $suite, $session, $suiteDomain)
{
$request = Request::createFromGlobals();
preg_match_all('/.local/', $request->getHttpHost(), $matches, PREG_SET_ORDER, 0);
$this->suiteAPI = $suite;
if($matches) $this->suiteURL = "http://$suiteDomain";
else $this->suiteURL = "https://$suiteDomain";
$this->session = $session;
}
public function logout(Request $request, Response $response, TokenInterface $token){
$user_session = $this->session->get('suite_session');
$this->suiteAPI->setUrl("{$this->suiteURL}/service/v4_1/rest.php");
$this->suiteAPI->setSession($user_session);
$this->suiteAPI->logout();
//Unset cookie for SuiteCRM
setcookie("PHPSESSID", "", time()+3600, "/crm");
setcookie("LOGINUSERID", "", time()+3600, "/");
setcookie("masquerade", "");
}
}