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