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;
 }
Beispiel #2
0
			$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