%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/controller/classes/general/ |
| Current File : /home/bitrix/www/bitrix/modules/controller/classes/general/controller.php |
<?php
class CControllerServerRequestTo extends __CControllerPacketRequest
{
var $url;
var $debug_const = "CONTROLLER_SERVER_DEBUG";
var $debug_file_const = "CONTROLLER_SERVER_LOG_DIR";
public function __construct($member, $operation, $arParameters = array())
{
if (is_array($member))
{
$arMember = $member;
}
else
{
$dbr_member = CControllerMember::GetById($member);
$arMember = $dbr_member->Fetch();
}
if ($arMember)
{
$this->url = $arMember["URL"];
$this->hostname = $arMember["HOSTNAME"];
$this->member_id = $arMember["MEMBER_ID"];
$this->secret_id = $arMember["SECRET_ID"];
$this->operation = $operation;
$this->arParameters = $arParameters;
$this->session_id = \Bitrix\Main\Security\Random::getString(32);
}
}
public function Send($url = "", $page = "/bitrix/admin/main_controller.php")
{
$event = new \Bitrix\Main\Event("controller", "OnBeforeControllerServerRequestSend", array($this));
$event->send();
$this->Sign();
$result = parent::Send($this->url, $page);
if ($result === false)
return false;
$oResponse = new CControllerServerResponseFrom($result);
return $oResponse;
}
}
class CControllerServerResponseFrom extends __CControllerPacketResponse
{
var $debug_const = "CONTROLLER_SERVER_DEBUG";
var $debug_file_const = "CONTROLLER_SERVER_LOG_DIR";
public function __construct($oPacket = false)
{
$this->_InitFromRequest($oPacket, array());
}
}
//
// This class handles clients queries
//
class CControllerServerRequestFrom extends __CControllerPacketRequest
{
var $debug_const = "CONTROLLER_SERVER_DEBUG";
var $debug_file_const = "CONTROLLER_SERVER_LOG_DIR";
public function __construct()
{
$this->InitFromRequest();
$this->Debug(array(
'Request received from #'.$this->member_id,
'security check' => ($this->Check()? 'passed': 'failed'),
'Packet' => $this,
));
}
public function Check()
{
global $APPLICATION;
$dbr_member = CControllerMember::GetByGuid($this->member_id);
$ar_member = $dbr_member->Fetch();
if (!$ar_member)
{
$e = new CApplicationException("Bad member_id: ".$this->member_id."");
$APPLICATION->ThrowException($e);
return false;
}
$this->secret_id = $ar_member["SECRET_ID"];
return parent::Check();
}
}
class CControllerServerResponseTo extends __CControllerPacketResponse
{
var $debug_const = "CONTROLLER_SERVER_DEBUG";
var $debug_file_const = "CONTROLLER_SERVER_LOG_DIR";
public function __construct($oPacket = false)
{
$this->_InitFromRequest($oPacket);
$this->secret_id = false;
}
public function Sign()
{
global $APPLICATION;
if ($this->secret_id === false)
{
$dbr_member = CControllerMember::GetByGuid($this->member_id);
$ar_member = $dbr_member->Fetch();
if (!$ar_member)
{
$e = new CApplicationException("Bad member_id: ".$this->member_id."");
$APPLICATION->ThrowException($e);
return false;
}
$this->secret_id = $ar_member["SECRET_ID"];
}
return parent::Sign();
}
}