<?php
/**
* SmtCoreLogin short summary.
*
* SmtCoreLogin description.
*
* @version 1.0
* @author jairo.erazo
*/
namespace Smt\CoreBundle\Service;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class SmtAuth
{
private $Lo_SmtApi;
public function __construct(SmtApi $Ao_SmtApi){
$this->Lo_SmtApi = $Ao_SmtApi;
}
public function authentication($As_Username, $As_Password, ?SessionInterface $session = null)
{
$La_Return = array();
$La_Return['b_Success'] = false;
$La_Data = array();
$La_Data['Username'] = $As_Username;
$La_Data['Password'] = $As_Password;
$La_Data['s_InitialReferer'] = $session->get('initial_referer');
$Ls_Data = json_encode($La_Data);
$Lo_ResultHeaders = array();
$Ls_Answer = $this->Lo_SmtApi->callApi('POST', 'Authorization/login/', $Ls_Data, true, false, $Lo_ResultHeaders);
$Lo_Answer = json_decode($Ls_Answer);
if ($Lo_Answer != false)
{
if ($Lo_Answer->Error === 0 && ($Lo_Answer->Result->LoginState === 1))
{
$La_Return['b_Success'] = true;
$La_Return['i_SSP_PersonID'] = $Lo_Answer->Result->i_SSP_PersonID;
$La_Return['s_FirstName'] = $Lo_Answer->Result->FirstName;
$La_Return['s_LastName'] = $Lo_Answer->Result->LastName;
$La_Return['a_Roles'] = $Lo_Answer->Result->Groups; //array();
$La_Return['LoginHeaders'] = $Lo_ResultHeaders;
$La_Return['a_ADRoles'] = [];
$La_Return['s_FAKNumber'] = $Lo_Answer->Result->FAKNumber;
$La_Return['s_Birthdate'] = $Lo_Answer->Result->Birthdate;
$La_Return['a_AddressRole'] = $Lo_Answer->Result->a_AddressRole;
$La_Return['o_Properties'] = $Lo_Answer->Result->o_Properties;
foreach ($Lo_Answer->Result->Groups as $Ls_Group)
{
$La_Return['a_ADRoles'][] = (int)$Ls_Group;
} // foreach
} // if
} // if
return($La_Return);
} // function authSmt
public function validateSession($As_SetCookie, $Ai_AdressID)
{
$La_Return = false;
$La_Data = array();
$La_Data = [
"Li_AdressID" => $Ai_AdressID
];
$Lo_Header = 'Cookie: ' . $As_SetCookie;
$Ls_Answer = $this->Lo_SmtApi->callApi('GET', 'Authorization/validatesession/', $La_Data, true, $Lo_Header);
$Lo_Answer = json_decode($Ls_Answer);
if($Lo_Answer->Error == 0)
{
$La_Return = true;
}
return($La_Return);
}
}