- Модуль: 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;
}