• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/documenteditoruser.php
  • Класс: BitrixDiskDocumentDocumentEditorUser
  • Вызов: DocumentEditorUser::login
static function login(array $fieldsToCreate = []): bool
{
	if (!$GLOBALS['USER']->isAuthorized())
	{
		$GLOBALS['USER']->loginByCookies();
	}

	if ($GLOBALS['USER']->isAuthorized())
	{
		return true;
	}

	$request = Context::getCurrent()->getRequest();
	$authHash = $request->getCookieRaw(self::COOKIE_AUTH_HASH_NAME);

	$user = null;
	if (is_string($authHash) && !empty($authHash))
	{
		$user = self::getUserByHash($authHash);
	}

	if (!$user)
	{
		$user = self::create($fieldsToCreate);
	}

	if ($user)
	{
		$authHash = str_replace(self::EXTERNAL_AUTH_ID . '|', '', $user->getXmlId());
		$cookie = new Cookie(self::COOKIE_AUTH_HASH_NAME, $authHash, null, false);
		Context::getCurrent()->getResponse()->addCookie($cookie);

		$GLOBALS['USER']->authorize($user->getId(), false, true, 'public');

		return true;
	}

	return false;
}