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; }
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; }