<?php
/*
* This file is part of the Symfony package.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Symfony\Component\Security\Http\Logout;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Core\Authentication\Token\TokenInterface;
use Mysqli;
/**
* Handler for clearing invalidating the current session.
*
* @author Johannes M. Schmitt <schmittjoh@gmail.com>
*/
class SessionLogoutHandler implements LogoutHandlerInterface
{
/**
* Invalidate the current session.
*/
public function logout(Request $request, Response $response, TokenInterface $token)
{
$username = $token->getUsername();
$mysqli = $this->conectionTKT();
$consulta = "SELECT r.code, u.Id userId FROM uv_user u JOIN uv_user_instance ui ON ui.user_id = u.id JOIN uv_support_role r ON r.id = ui.supportRole_id WHERE u.email = '$username'";
$resultado = $mysqli->query($consulta);
$roles = array();
$userId = 0;
if ($resultado === FALSE) {
echo json_encode($mysqli->error);
} else {
while ($fila = $resultado->fetch_assoc()) {
$userId = $fila['userId'];
$roles[] = $fila['code'];
}
}
if (in_array('ROLE_ADMIN', $roles) || in_array('ROLE_SUPER_ADMIN', $roles) || in_array('ROLE_AGENT', $roles)) {
$mysqli = $this->conectionTKT();
$consulta = "INSERT INTO agent_login (agent_id,date,auth_type) VALUES ('".$userId."','".date('Y-m-d H:i:s')."', 'logout')";
if ($mysqli->query($consulta) === TRUE) {
echo 'ok';
} else {
echo json_encode($mysqli->error);
}
$mysqli->close();
}
$request->getSession()->invalidate();
}
public function conectionTKT(){
$mysqli = new mysqli("database-plesk.cfcc6wi065dc.us-east-1.rds.amazonaws.com", "ticketera", "Qn0is837Zo102", "admin_tkt2");
//$mysqli = new mysqli("localhost", "root", "root", "ticketerasg");
/* comprobar la conexión */
if ($mysqli->connect_errno) {
printf("Falló la conexión: %s\n", $mysqli->connect_error);
exit();
}
return $mysqli;
}
}