• Модуль: disk
  • Путь к файлу: ~/bitrix/modules/disk/lib/document/onlyoffice/restrictionmanager.php
  • Класс: BitrixDiskDocumentOnlyOfficeRestrictionManager
  • Вызов: RestrictionManager::processHookData
public function processHookData(int $status, array $hookData): void
{
	$documentKey = $hookData['key'] ?? null;
	if (!$documentKey)
	{
		return;
	}

	$usersWhoFinished = [];
	$actions = $hookData['actions'] ?? [];
	foreach ($actions as $action)
	{
		$type = $action['type'] ?? null;
		$userId = (int)($action['userid'] ?? null);

		if ($type === EnumUserAction::DISCONNECT)
		{
			$usersWhoFinished[] = $userId;
		}
	}

	if ($this->isDocumentClosed($status))
	{
		$this->deleteEntriesByExternalHash($documentKey);

		return;
	}

	$this->updateEntriesActivityByDocumentKey($documentKey);
	if ($status === EnumStatus::IS_BEING_EDITED)
	{
		$this->deleteUserEntriesByDocumentKey($usersWhoFinished, $documentKey);
	}
}