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

	$APPLICATION->ResetException();
	if (defined("ADMIN_SECTION") && ADMIN_SECTION === true && $SITE_ID === false)
	{
		$APPLICATION->ThrowException(GetMessage("MAIN_FUNCTION_SIMPLEREGISTER_NA_INADMIN"));
		return ["MESSAGE" => GetMessage("MAIN_FUNCTION_SIMPLEREGISTER_NA_INADMIN"), "TYPE" => "ERROR"];
	}

	if ($SITE_ID === false)
	{
		$SITE_ID = SITE_ID;
	}

	global $REMOTE_ADDR;

	$arFields = [
		"CHECKWORD" => Random::getString(32),
		"~CHECKWORD_TIME" => $DB->CurrentTimeFunction(),
		"EMAIL" => $USER_EMAIL,
		"ACTIVE" => 'Y',
		"NAME" => '',
		"LAST_NAME" => '',
		"USER_IP" => $REMOTE_ADDR,
		"USER_HOST" => @gethostbyaddr($REMOTE_ADDR),
		"SITE_ID" => $SITE_ID,
		"LANGUAGE_ID" => LANGUAGE_ID,
	];

	$def_group = Option::get('main', 'new_user_registration_def_group');
	if ($def_group != '')
	{
		$arFields["GROUP_ID"] = explode(",", $def_group);
	}
	else
	{
		$arFields["GROUP_ID"] = [];
	}
	$arFields["PASSWORD"] = $arFields["CONFIRM_PASSWORD"] = static::GeneratePasswordByPolicy($arFields["GROUP_ID"]);

	$bOk = true;
	$result_message = false;
	foreach (GetModuleEvents('main', 'OnBeforeUserSimpleRegister', true) as $arEvent)
	{
		if (ExecuteModuleEventEx($arEvent, [&$arFields]) === false)
		{
			if ($err = $APPLICATION->GetException())
			{
				$result_message = ["MESSAGE" => $err->GetString() . "
", "TYPE" => "ERROR"]; } else { $APPLICATION->ThrowException("Unknown error"); $result_message = ["MESSAGE" => "Unknown error" . "
", "TYPE" => "ERROR"]; } $bOk = false; break; } } $bRandLogin = false; if (!is_set($arFields, "LOGIN")) { $arFields["LOGIN"] = Random::getString(50); $bRandLogin = true; } $ID = 0; if ($bOk) { $arFields["LID"] = $arFields["SITE_ID"]; if ($ID = $this->Add($arFields)) { if ($bRandLogin) { $this->Update($ID, ["LOGIN" => "user" . $ID]); $arFields["LOGIN"] = "user" . $ID; } $this->Authorize($ID); $event = new CEvent; $arFields["USER_ID"] = $ID; $arEventFields = $arFields; unset($arEventFields["PASSWORD"]); unset($arEventFields["CONFIRM_PASSWORD"]); $event->SendImmediate("NEW_USER", $arEventFields["SITE_ID"], $arEventFields); static::SendUserInfo($ID, $arEventFields["SITE_ID"], GetMessage("USER_REGISTERED_SIMPLE"), true); $result_message = ["MESSAGE" => GetMessage("USER_REGISTER_OK"), "TYPE" => "OK"]; } else { $result_message = ["MESSAGE" => $this->LAST_ERROR, "TYPE" => "ERROR"]; } } if (is_array($result_message)) { if ($result_message["TYPE"] == "OK") { if (Option::get('main', 'event_log_register', 'N') === 'Y') { $res_log["user"] = $arFields["LOGIN"]; CEventLog::Log('SECURITY', 'USER_REGISTER', 'main', $ID, serialize($res_log)); } } else { if (Option::get('main', 'event_log_register_fail', 'N') === 'Y') { CEventLog::Log('SECURITY', 'USER_REGISTER_FAIL', 'main', $ID, $result_message['MESSAGE']); } } } $arFields["RESULT_MESSAGE"] = $result_message; foreach (GetModuleEvents('main', 'OnAfterUserSimpleRegister', true) as $arEvent) { ExecuteModuleEventEx($arEvent, [&$arFields]); } return $arFields["RESULT_MESSAGE"]; }