break;
 case 'join':
     // check rights for add
     $USER->Login($oRequest->arParameters['admin_login'], $oRequest->arParameters['admin_password']);
     $MOD_RIGHT = $APPLICATION->GetGroupRight("controller");
     if ($MOD_RIGHT < "T") {
         $oResponse->status = "413 Bad admin";
         $oResponse->text = GetMessage("CTRLR_WS_ERR_BAD_LEVEL");
         break;
     }
     $oResponse->secret_id = $oRequest->arParameters['member_secret_id'];
     // check if that site is agree?
     //if(!($res = CControllerMember::RegisterMemberByTicket($oRequest->member_id, $oRequest->arParameters['member_secret_id'], $oRequest->arParameters['ticket_id'], $oRequest->arParameters['url'], $oRequest->session_id)))
     $ar_member = array("MEMBER_ID" => $oRequest->member_id, "SECRET_ID" => $oRequest->arParameters['member_secret_id'], "NAME" => strlen($oRequest->arParameters['name']) > 0 ? $oRequest->arParameters['name'] : $oRequest->arParameters['url'], "URL" => $oRequest->arParameters['url'], "EMAIL" => $oRequest->arParameters['email'], "CONTACT_PERSON" => $oRequest->arParameters['contact_person'], "CONTROLLER_GROUP_ID" => $oRequest->arParameters['group_id'] ? $oRequest->arParameters['group_id'] : COption::GetOptionInt("controller", "default_group", 1), "SHARED_KERNEL" => $oRequest->arParameters['shared_kernel'] == "Y" ? "Y" : "N");
     $dbr_mem = CControllerMember::GetList(array(), array("URL" => CControllerMember::_GoodURL($oRequest->arParameters['url']), "DISCONNECTED" => "I"));
     if (($ar_mem = $dbr_mem->Fetch()) && CControllerMember::_GoodURL($ar_mem["URL"]) == CControllerMember::_GoodURL($oRequest->arParameters['url'])) {
         $ar_member["ID"] = $ar_mem["ID"];
     }
     if ($ID = CControllerMember::RegisterMemberByTicket($ar_member, $oRequest->arParameters['ticket_id'], $oRequest->session_id)) {
         $oResponse->status = "200 OK";
         $oResponse->arParameters['ID'] = $ID;
     } else {
         $oResponse->status = "453 RegisterMemberByTicket error";
         $e = $APPLICATION->GetException();
         $oResponse->text = $e->GetString();
     }
     break;
     // all ok? then we need update settings
 // all ok? then we need update settings
 case 'init_group_update':
     $dbr = CControllerMember::GetByGuid($oRequest->member_id);
 function CheckFields(&$arFields, $ID = false)
 {
     $arMsg = array();
     if ($ID > 0) {
         //AddMessage2Log(print_r($arFields, true));
         //unset($arFields["MEMBER_ID"]);
         unset($arFields["ID"]);
     }
     global $DB;
     if ($ID === false) {
         if (!is_set($arFields, "MEMBER_ID")) {
             $arFields["MEMBER_ID"] = substr("m" . md5(uniqid(rand(), true)), 0, 32);
         } elseif (is_set($arFields, "MEMBER_ID")) {
             if (IntVal($arFields["MEMBER_ID"]) > 0) {
                 $arMsg[] = array("id" => "MEMBER_ID", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_ID"));
             } else {
                 $strSqlCheck = "SELECT 'x' " . "FROM b_controller_member " . "WHERE MEMBER_ID='" . $DB->ForSQL($arFields['MEMBER_ID'], 32) . "' AND ID<>" . IntVal($ID);
                 $dbrCheck = $DB->Query($strSqlCheck);
                 if ($dbrCheck->Fetch()) {
                     $arMsg[] = array("id" => "MEMBER_ID", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_UID"));
                 }
             }
         }
     }
     if (($ID === false || is_set($arFields, "NAME")) && strlen($arFields["NAME"]) <= 0) {
         $arMsg[] = array("id" => "NAME", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_NAME"));
     }
     if (($ID === false || is_set($arFields, "URL")) && strlen($arFields["URL"]) <= 0) {
         $arMsg[] = array("id" => "URL", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_URL"));
     }
     if ($ID === false && !is_set($arFields, "CONTROLLER_GROUP_ID")) {
         $arFields["CONTROLLER_GROUP_ID"] = COption::GetOptionInt("controller", "default_group", 1);
     }
     if (count($arMsg) > 0) {
         $e = new CAdminException($arMsg);
         $GLOBALS["APPLICATION"]->ThrowException($e);
         return false;
     }
     if (isset($arFields["URL"])) {
         $arFields["URL"] = CControllerMember::_GoodURL($arFields["URL"]);
     }
     if (is_set($arFields, "ACTIVE") && $arFields["ACTIVE"] != "Y") {
         $arFields["ACTIVE"] = "N";
     }
     if (is_set($arFields, "SHARED_KERNEL") && $arFields["SHARED_KERNEL"] != "Y") {
         $arFields["SHARED_KERNEL"] = "N";
     }
     if (is_set($arFields, "DISCONNECTED") && $arFields["DISCONNECTED"] != "Y" && $arFields["DISCONNECTED"] != "I") {
         $arFields["DISCONNECTED"] = "N";
     }
     global $USER;
     if (!is_set($arFields, "MODIFIED_BY") && is_object($USER)) {
         $arFields["MODIFIED_BY"] = $USER->GetID();
     }
     if ($ID === false && !is_set($arFields, "CREATED_BY") && is_object($USER)) {
         $arFields["CREATED_BY"] = $USER->GetID();
     }
     if ($ID === false && !is_set($arFields, "DATE_CREATE")) {
         $arFields["~DATE_CREATE"] = $DB->CurrentTimeFunction();
     }
     return true;
 }
Example #3
0
 public static function CheckFields(&$arFields, $ID = false)
 {
     /** @global CMain $APPLICATION */
     global $APPLICATION;
     /** @global CDatabase $DB */
     global $DB;
     /** @global CUser $USER */
     global $USER;
     $arMsg = array();
     if ($ID > 0) {
         unset($arFields["ID"]);
     }
     if ($ID === false) {
         if (!array_key_exists("MEMBER_ID", $arFields)) {
             $arFields["MEMBER_ID"] = substr("m" . md5(uniqid(rand(), true)), 0, 32);
         } elseif (array_key_exists("MEMBER_ID", $arFields)) {
             if (intval($arFields["MEMBER_ID"]) > 0) {
                 $arMsg[] = array("id" => "MEMBER_ID", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_ID"));
             } else {
                 $strSqlCheck = "\n\t\t\t\t\t\tSELECT 'x'\n\t\t\t\t\t\tFROM b_controller_member\n\t\t\t\t\t\tWHERE MEMBER_ID = '" . $DB->ForSQL($arFields['MEMBER_ID'], 32) . "'\n\t\t\t\t\t\tAND ID <> " . intval($ID) . "\n\t\t\t\t\t";
                 $dbrCheck = $DB->Query($strSqlCheck);
                 if ($dbrCheck->Fetch()) {
                     $arMsg[] = array("id" => "MEMBER_ID", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_UID"));
                 }
             }
         }
     }
     if (($ID === false || array_key_exists("NAME", $arFields)) && strlen($arFields["NAME"]) <= 0) {
         $arMsg[] = array("id" => "NAME", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_NAME"));
     }
     if (($ID === false || array_key_exists("URL", $arFields)) && strlen($arFields["URL"]) <= 0) {
         $arMsg[] = array("id" => "URL", "text" => GetMessage("CTRLR_MEM_ERR_MEMBER_URL"));
     }
     if ($ID === false && !array_key_exists("CONTROLLER_GROUP_ID", $arFields)) {
         $arFields["CONTROLLER_GROUP_ID"] = COption::GetOptionInt("controller", "default_group", 1);
     }
     if ($ID === false) {
         $dbEvents = GetModuleEvents("controller", "OnBeforeControllerMemberAdd", true);
     } else {
         $dbEvents = GetModuleEvents("controller", "OnBeforeControllerMemberUpdate", true);
     }
     $APPLICATION->ResetException();
     foreach ($dbEvents as $arEvent) {
         $bEventRes = ExecuteModuleEventEx($arEvent, array($ID, &$arFields));
         if ($bEventRes === false) {
             $ex = $APPLICATION->GetException();
             $arMsg[] = array("text" => $ex ? $ex->GetString() : "Unknown error.");
         }
     }
     if (!empty($arMsg)) {
         $e = new CAdminException($arMsg);
         $APPLICATION->ThrowException($e);
         return false;
     }
     if (isset($arFields["URL"])) {
         $arFields["URL"] = CControllerMember::_GoodURL($arFields["URL"]);
     }
     if (array_key_exists("ACTIVE", $arFields) && $arFields["ACTIVE"] != "Y") {
         $arFields["ACTIVE"] = "N";
     }
     if (array_key_exists("SHARED_KERNEL", $arFields) && $arFields["SHARED_KERNEL"] != "Y") {
         $arFields["SHARED_KERNEL"] = "N";
     }
     if (array_key_exists("DISCONNECTED", $arFields) && $arFields["DISCONNECTED"] != "Y" && $arFields["DISCONNECTED"] != "I") {
         $arFields["DISCONNECTED"] = "N";
     }
     if (!array_key_exists("MODIFIED_BY", $arFields) && is_object($USER)) {
         $arFields["MODIFIED_BY"] = $USER->GetID();
     }
     if ($ID === false && !array_key_exists("CREATED_BY", $arFields) && is_object($USER)) {
         $arFields["CREATED_BY"] = $USER->GetID();
     }
     if ($ID === false && !array_key_exists("DATE_CREATE", $arFields)) {
         $arFields["~DATE_CREATE"] = $DB->CurrentTimeFunction();
     }
     return true;
 }