function RegisterMemberByTicket($ar_member, $ticket_id, $session_id) { if ($ar_member["ID"] > 0) { $ID = $ar_member["ID"]; } else { $ID = false; } $member_id = $ar_member["MEMBER_ID"]; if (!CControllerMember::CheckFields($ar_member, $ID)) { return false; } $ar_member["MEMBER_ID"] = $member_id; $arParameters = array("controller_ticket_id" => $ticket_id, "join_command" => ' COption::SetOptionString("main", "controller_member", "Y"); COption::SetOptionString("main", "controller_ticket", ""); RegisterModuleDependences("main", "OnUserLoginExternal", "main", "CControllerClient", "OnExternalLogin", 1); RegisterModuleDependences("main", "OnExternalAuthList", "main", "CControllerClient", "OnExternalAuthList"); ', "disconnect_command" => ' CControllerClient::RestoreAll(); COption::SetOptionString("main", "controller_member", "N"); COption::SetOptionString("main", "controller_member_id", ""); COption::SetOptionString("main", "controller_url", ""); UnRegisterModuleDependences("main", "OnUserLoginExternal", "main", "CControllerClient", "OnExternalLogin", 1); UnRegisterModuleDependences("main", "OnExternalAuthList", "main", "CControllerClient", "OnExternalAuthList"); '); $oRequest = new CControllerServerRequestTo($ar_member, "register", $arParameters); if ($session_id) { $oRequest->session_id = $session_id; } if (($oResponse = $oRequest->Send()) == false) { return false; } $result = $oResponse->OK(); if ($result === false) { $e = new CApplicationException($oResponse->text); $GLOBALS["APPLICATION"]->ThrowException($e); return false; } if ($ID > 0) { $ar_member["DISCONNECTED"] = "N"; $ID = CControllerMember::Update($ID, $ar_member) ? $ID : false; } else { $ID = CControllerMember::Add($ar_member); } if ($ID > 0) { $arControllerLog = array('NAME' => 'REGISTRATION', 'CONTROLLER_MEMBER_ID' => $ID, 'DESCRIPTION' => GetMessage("CTRLR_MEM_LOG_DESC_JOIN_BY_TICKET2"), 'STATUS' => 'Y'); CControllerLog::Add($arControllerLog); CControllerMember::SetGroupSettings($ID); if (!isset($ar_member["DISCONNECTED"]) || $ar_member["DISCONNECTED"] == "N") { // add join event CTimeZone::Disable(); $db_res = CControllerMember::GetByID($ID); CTimeZone::Enable(); if ($arFields = $db_res->Fetch()) { $events = GetModuleEvents("controller", "OnAfterRegisterMemberByTicket"); while ($arEvent = $events->Fetch()) { ExecuteModuleEventEx($arEvent, array(&$arFields)); } CEvent::Send("CONTROLLER_MEMBER_REGISTER", SITE_ID, $arFields); } } return $ID; } return false; }
if ($arMember = $rsMember->Fetch()) { $ID = $arMember["ID"]; } break; } if ($ID || $arParams["COMMAND"] == "reserve" || $arParams["COMMAND"] == "list" || $arParams["COMMAND"] == "listall" || $arParams["COMMAND"] == "getlist") { switch ($arParams["COMMAND"]) { case "reserve": if ($ID) { echo "401 ER\n", GetMessage("CC_BCSC_RESERVE_ERROR_ALREADY", array("#ID#" => $ID)); } elseif (count($arParams["SITE_URL"]) != 1) { echo "401 ER\n", GetMessage("CC_BCSC_RESERVE_ERROR_SITE_URL"); } else { foreach ($arParams["SITE_URL"] as $key => $site_url) { $arFields = array("URL" => is_array($site_url) ? $site_url[0] : $site_url, "SHARED_KERNEL" => "Y", "DISCONNECTED" => "I", "NAME" => is_array($site_url) ? substr($site_url[0], strlen("http://")) : $site_url, "ACTIVE" => "Y"); if (!CControllerMember::Add($arFields)) { echo "401 ER\n"; if ($e = $APPLICATION->GetException()) { echo "401 ER\n", GetMessage("CC_BCSC_RESERVE_ERROR", array("#MESSAGE#" => $e->GetString())); } else { echo "500 ER\n"; } } else { echo "200 OK\n"; } break; } } break; case "update": $arFields = array();
$message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR4"), $e); } $bRegistrationByTicketError = true; } } elseif ($sRegistrationMode == "password") { if (strlen($_REQUEST["ADMIN_LOGIN"]) < 0 || strlen($_REQUEST["ADMIN_PASSWORD"]) <= 0) { $e = new CApplicationException(GetMessage("CTRLR_MEM_EDIT_ERR5")); $message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR4"), $e); } elseif (!($ID = CControllerMember::RegisterMemberByPassword($arFields, $_REQUEST["ADMIN_LOGIN"], $_REQUEST["ADMIN_PASSWORD"]))) { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR4"), $e); } $bRegistrationByTicketError = true; } } else { $ID = CControllerMember::Add($arFields); } $res = $ID > 0; } if (!$res) { if ($e = $APPLICATION->GetException()) { $message = new CAdminMessage(GetMessage("CTRLR_MEM_EDIT_ERR6"), $e); } } else { if (strlen($save) > 0) { if ($back_url == '') { LocalRedirect("controller_member_admin.php?lang=" . LANG); } else { LocalRedirect($back_url); } } else {
$ID = false; //Put site under controller if (!count($arError) && $arParams["REGISTER_IMMEDIATE"] == "N") { $ar_member = array("URL" => $site_url, "SHARED_KERNEL" => "Y", "DISCONNECTED" => "I", "NAME" => substr(substr($site_url, 0, -1), strlen("http://")), "ACTIVE" => "Y"); if (!CControllerMember::Add($ar_member)) { $arError[] = GetMessage('CSA_ERROR_ADD_SITE'); } } if (!count($arError) && $arParams["REGISTER_IMMEDIATE"] != "N") { $ar_member = array('MEMBER_ID' => substr("m" . md5(uniqid(rand(), true)), 0, 32), 'SECRET_ID' => substr("m" . md5(uniqid(rand(), true)), 0, 32), 'NAME' => substr($site_url, strlen("http://")), 'URL' => $site_url, 'CONTROLLER_GROUP_ID' => COption::GetOptionInt("controller", "default_group", 1), 'ACTIVE' => "Y", 'SHARED_KERNEL' => "Y", 'DISCONNECTED' => "N", '~DATE_CREATE' => $DB->CurrentTimeFunction()); $dbrCheck = $DB->Query("SELECT 'x' FROM b_controller_member WHERE MEMBER_ID='" . $DB->ForSQL($ar_member['MEMBER_ID'], 32) . "'"); while ($dbrCheck->Fetch()) { $ar_member['MEMBER_ID'] = substr("m" . md5(uniqid(rand(), true)), 0, 32); $dbrCheck = $DB->Query("SELECT 'x' FROM b_controller_member WHERE MEMBER_ID='" . $DB->ForSQL($ar_member['MEMBER_ID'], 32) . "'"); } if ($ID = CControllerMember::Add($ar_member)) { $arControllerLog = array('NAME' => 'REGISTRATION', 'CONTROLLER_MEMBER_ID' => $ID, 'DESCRIPTION' => GetMessage('CSA_LOG_ADD_CLIENT'), 'STATUS' => 'Y'); CControllerLog::Add($arControllerLog); if (mysql_select_db($db_name, $oConn)) { $result = @mysql_query("delete from b_option where NAME='update_site'"); if ($result) { $result = @mysql_query("insert into b_option (SITE_ID, MODULE_ID, NAME, VALUE, DESCRIPTION) values (\n\t\t\t\t\t\t\tNULL,\n\t\t\t\t\t\t\t'main',\n\t\t\t\t\t\t\t'update_site',\n\t\t\t\t\t\t\t'www.1c-bitrix.ru',\n\t\t\t\t\t\t\tNULL\n\t\t\t\t\t\t)"); } $result = @mysql_query("delete from b_option where NAME='controller_member'"); if ($result) { $result = @mysql_query("insert into b_option (SITE_ID, MODULE_ID, NAME, VALUE, DESCRIPTION) values (\n\t\t\t\t\t\t\tNULL,\n\t\t\t\t\t\t\t'main',\n\t\t\t\t\t\t\t'controller_member',\n\t\t\t\t\t\t\t'Y',\n\t\t\t\t\t\t\tNULL\n\t\t\t\t\t\t)"); } if ($result) { $result = @mysql_query("delete from b_option where NAME='controller_member_id'"); } if ($result) {