- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/controller/file.php
- Класс: BitrixDiskControllerFile
- Вызов: File::showSharingEntitiesAction
public function showSharingEntitiesAction(DiskFile $file)
{
$currentUserId = $this->getCurrentUser()->getId();
$securityContext = $file->getStorage()->getSecurityContext($currentUserId);
$rightsManager = Driver::getInstance()->getRightsManager();
$entityList = [];
//user has only read right. And he can't see on another sharing
if(!$file->canShare($securityContext) && !$file->canChangeRights($securityContext))
{
/** @var DiskUser $user */
$user = DiskUser::getById($currentUserId);
$pseudoMaxTaskByObjectForUser = $rightsManager->getPseudoMaxTaskByObjectForUser($file, $currentUserId);
$entityList = [
[
'entity' => [
'id' => DiskSharing::CODE_USER . $currentUserId,
'name' => $user->getFormattedName(),
'avatar' => $user->getAvatarSrc(),
'type' => 'users',
],
'sharing' => [
'right' => $pseudoMaxTaskByObjectForUser,
'name' => $rightsManager->getTaskTitleByName($pseudoMaxTaskByObjectForUser),
],
]
];
}
else
{
foreach ($file->getMembersOfSharing() as $entity)
{
$entityList[] = [
'entity' => [
'id' => $entity['entityId'],
'name' => $entity['name'],
'avatar' => $entity['avatar'],
'type' => $entity['type'],
],
'sharing' => [
'id' => $entity['sharingId'],
'taskName' => $entity['right'],
'name' => $rightsManager->getTaskTitleByName($entity['right']),
'canDelete' => true,
'canChange' => true,
],
];
}
}
return $entityList;
}