function JoinToControllerEx($controller_url, $controller_login, $controller_password, $arMemberParams = array()) { if (COption::GetOptionString("main", "controller_member", "N") == "Y") { return false; } if (strlen($arMemberParams["URL"]) <= 0) { $arMemberParams["URL"] = $_SERVER['HTTP_HOST']; } list($member_id, $member_secret_id, $ticket_id) = CControllerClient::InitTicket($controller_url); // send to controller $arVars = array("member_secret_id" => $member_secret_id, "ticket_id" => $ticket_id, "admin_login" => $controller_login, "admin_password" => $controller_password, "url" => $arMemberParams["URL"], "name" => $arMemberParams["NAME"], "contact_person" => $arMemberParams["CONTACT_PERSON"], "email" => $arMemberParams["EMAIL"], "shared_kernel" => $arMemberParams["SHARED_KERNEL"] ? "Y" : "N"); if ($arMemberParams["CONTROLLER_GROUP"] > 0) { $arVars['group_id'] = $arMemberParams["CONTROLLER_GROUP"]; } $oRequest = new CControllerClientRequestTo("join", $arVars); if (($oResponse = $oRequest->Send()) == false) { return false; } if (!$oResponse->OK()) { $e = new CApplicationException(GetMessage("MAIN_CMEMBER_ERR3") . ": " . $oResponse->text); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } COption::SetOptionString("main", "controller_member", "Y"); global $USER; $USER->Authorize($USER->GetID()); return true; }
$command = $oRequest->arParameters["command"]; if(CControllerClient::RunCommand($command, $oRequest, $oResponse) === false) $oResponse->status = "450 Execution error"; else $oResponse->status = "200 OK"; break; case 'sendfile': set_time_limit(1200); $arVars = Array( 'command_id' => $oRequest->arParameters['command_id'], 'sendfile' => 'Y', ); $oClientRequest = new CControllerClientRequestTo('query', $arVars); $oClientRequest->session_id = $oRequest->session_id; $oClientResponse = $oClientRequest->Send(); if(is_object($oClientResponse) && $oClientResponse->Check()) { if($oClientResponse->OK()) { if (CControllerTools::UnpackFileArchive($oClientResponse->arParameters['file'], $oClientResponse->arParameters['path_to'])) { $oResponse->status = "200 OK"; $command = $oClientResponse->arParameters['command']; if (strlen($command) > 0 && CControllerClient::RunCommand($command, $oResponse, $oClientResponse) === false) { $oResponse->status = "450 Execution error"; } } else