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