• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/user.php
  • Класс: CAllUser
  • Вызов: CAllUser::CheckFields
public function CheckFields(&$arFields, $ID = false)
{
	/**
	 * @global CMain $APPLICATION
	 * @global CUserTypeManager $USER_FIELD_MANAGER
	 */
	global $DB, $APPLICATION, $USER_FIELD_MANAGER;

	$this->LAST_ERROR = '';

	$bInternal = true;
	if (is_set($arFields, "EXTERNAL_AUTH_ID"))
	{
		if (trim($arFields["EXTERNAL_AUTH_ID"]) != '')
		{
			$bInternal = false;
		}
	}
	else
	{
		if ($ID > 0)
		{
			$dbr = $DB->Query("SELECT EXTERNAL_AUTH_ID FROM b_user WHERE ID=" . intval($ID));
			if (($ar = $dbr->Fetch()))
			{
				if ($ar['EXTERNAL_AUTH_ID'] != '')
				{
					$bInternal = false;
				}
			}
		}
	}

	if ($bInternal)
	{
		$this->LAST_ERROR .= static::CheckInternalFields($arFields, $ID);
	}
	else
	{
		if (is_set($arFields, "EMAIL"))
		{
			if ($arFields["EMAIL"] != '' && !check_email($arFields["EMAIL"], true))
			{
				$this->LAST_ERROR .= GetMessage("WRONG_EMAIL") . "
"; } } } if ( is_set($arFields, "PERSONAL_PHOTO") && (!isset($arFields["PERSONAL_PHOTO"]["name"]) || $arFields["PERSONAL_PHOTO"]["name"] == '') && (!isset($arFields["PERSONAL_PHOTO"]["del"]) || $arFields["PERSONAL_PHOTO"]["del"] == '') ) { unset($arFields["PERSONAL_PHOTO"]); } $maxWidth = (int)Option::get('main', 'profile_image_width', 0); $maxHeight = (int)Option::get('main', 'profile_image_height', 0); $maxSize = (int)Option::get('main', 'profile_image_size', 0); if (is_set($arFields, "PERSONAL_PHOTO")) { $res = CFile::CheckImageFile($arFields["PERSONAL_PHOTO"], $maxSize, $maxWidth, $maxHeight); if ($res != '') { $this->LAST_ERROR .= $res . "
"; } } if (is_set($arFields, "PERSONAL_BIRTHDAY") && $arFields["PERSONAL_BIRTHDAY"] != '' && !CheckDateTime($arFields["PERSONAL_BIRTHDAY"])) { $this->LAST_ERROR .= GetMessage("WRONG_PERSONAL_BIRTHDAY") . "
"; } if ( is_set($arFields, "WORK_LOGO") && (!isset($arFields["WORK_LOGO"]["name"]) || $arFields["WORK_LOGO"]["name"] == '') && (!isset($arFields["WORK_LOGO"]["del"]) || $arFields["WORK_LOGO"]["del"] == '') ) { unset($arFields["WORK_LOGO"]); } if (is_set($arFields, "WORK_LOGO")) { $res = CFile::CheckImageFile($arFields["WORK_LOGO"], $maxSize, $maxWidth, $maxHeight); if ($res != '') { $this->LAST_ERROR .= $res . "
"; } } if (is_set($arFields, 'LOGIN')) { $res = $DB->Query( "SELECT 'x' FROM b_user " . "WHERE LOGIN = '{$DB->ForSql($arFields["LOGIN"], 50)}' " . ($ID === false ? '' : ' AND ID <> ' . (int)$ID) . ( !$bInternal ? " AND EXTERNAL_AUTH_ID = '{$DB->ForSql($arFields["EXTERNAL_AUTH_ID"])}' " : " AND (EXTERNAL_AUTH_ID IS NULL OR {$DB->Length("EXTERNAL_AUTH_ID")} <= 0)" ) ); if ($res->Fetch()) { $this->LAST_ERROR .= str_replace('#LOGIN#', htmlspecialcharsbx($arFields['LOGIN']), GetMessage('USER_EXIST')) . '
'; } } if (is_object($APPLICATION)) { $APPLICATION->ResetException(); if ($ID === false) { $events = GetModuleEvents('main', 'OnBeforeUserAdd', true); } else { $arFields["ID"] = $ID; $events = GetModuleEvents('main', 'OnBeforeUserUpdate', true); } foreach ($events as $arEvent) { $bEventRes = ExecuteModuleEventEx($arEvent, [&$arFields]); if ($bEventRes === false) { if ($err = $APPLICATION->GetException()) { $this->LAST_ERROR .= $err->GetString() . ' '; } else { $APPLICATION->ThrowException("Unknown error"); $this->LAST_ERROR .= "Unknown error. "; } break; } } } if (is_object($APPLICATION)) { $APPLICATION->ResetException(); } if (!$USER_FIELD_MANAGER->CheckFields("USER", $ID, $arFields)) { if (is_object($APPLICATION) && $APPLICATION->GetException()) { $e = $APPLICATION->GetException(); $this->LAST_ERROR .= $e->GetString(); $APPLICATION->ResetException(); } else { $this->LAST_ERROR .= "Unknown error. "; } } if ($this->LAST_ERROR != '') { return false; } return true; }