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;
    }
Example #2
0
     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 {
Example #4
0
 $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) {