• Модуль: im
  • Путь к файлу: ~/bitrix/modules/im/classes/general/im_disk.php
  • Класс: CIMDisk
  • Вызов: CIMDisk::GetBackgroundFolderModel
static function GetBackgroundFolderModel($userId = null)
{
	if (!self::Enabled())
	{
		return null;
	}

	$userId = IMCommon::getUserId($userId);
	if (!$userId)
	{
		return null;
	}

	$storageModel = self::GetStorage();
	if (!$storageModel)
	{
		return null;
	}

	$folderModel = $storageModel->getSpecificFolderByCode('CALL_BACKGROUND_'.$userId);
	if ($folderModel)
	{
		return $folderModel;
	}

	$backgroundFolderModel = $storageModel->getSpecificFolderByCode('CALL_BACKGROUND');
	if (!$backgroundFolderModel)
	{
		$backgroundFolderModel = $storageModel->addFolder([
			'NAME' => 'CALL_BACKGROUND',
			'CODE' => 'CALL_BACKGROUND',
			'CREATED_BY' => BitrixDiskSystemUser::SYSTEM_USER_ID,
		], [], true);
	}
	if (!$backgroundFolderModel)
	{
		return null;
	}

	$rightsManager = BitrixDiskDriver::getInstance()->getRightsManager();

	$folderModel = $backgroundFolderModel->addSubFolder(
		[
			'NAME' => 'CALL_BACKGROUND_'.$userId,
			'CODE' => 'CALL_BACKGROUND_'.$userId,
			'CREATED_BY' => $userId,
		],
		[
			// allow only for user, access code `Uxxx`
			['ACCESS_CODE' => 'U'.$userId, 'TASK_ID' => $rightsManager->getTaskIdByName($rightsManager::TASK_FULL)],
		],
		true
	);

	return $folderModel;
}