- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/driver.php
- Класс: BitrixDiskDriver
- Вызов: Driver::addUserStorage
public function addUserStorage($userId)
{
if(!Loader::includeModule('socialnetwork'))
{
throw new SystemException('Could not create user storage without module "socialnetwork"');
}
$userId = (int)$userId;
$data = array(
'NAME' => "user {$userId}",
);
/** @var User $userModel */
$userModel = User::loadById($userId);
if($userModel instanceof User)// && !$userModel->isEmptyName())
{
$userName = $userModel->getFormattedName();
if (!empty($userName))
{
$data['NAME'] = $userName;
}
}
$data['USE_INTERNAL_RIGHTS'] = 1;
$data['MODULE_ID'] = self::INTERNAL_MODULE_ID;
$data['ENTITY_TYPE'] = ProxyTypeUser::className();
$data['ENTITY_ID'] = $userId;
$rightsManager = $this->getRightsManager();
$fullAccessTaskId = $rightsManager->getTaskIdByName($rightsManager::TASK_FULL);
if($userModel && $userModel->isIntranetUser())
{
$rights = array(
array(
'ACCESS_CODE' => 'IU' . $userId,
'TASK_ID' => $fullAccessTaskId,
),
array(
'ACCESS_CODE' => 'U' . $userId,
'TASK_ID' => $fullAccessTaskId,
),
);
}
else
{
//for extranet user we don't have IU.
$rights = array(
array(
'ACCESS_CODE' => 'U' . $userId,
'TASK_ID' => $fullAccessTaskId,
),
);
}
return self::addStorageIfNotExist($data, $rights);
}