- Модуль: disk
- Путь к файлу: ~/bitrix/modules/disk/lib/sharing.php
- Класс: BitrixDiskSharing
- Вызов: Sharing::onBeforeConfirmNotify
static function onBeforeConfirmNotify($module, $tag, $value, $notify)
{
global $USER;
if (!$USER instanceof CUser)
{
return;
}
$userId = $USER->getId();
if ( !($module === Driver::INTERNAL_MODULE_ID && $userId) )
{
return;
}
$sharingModel = static::loadByNotifyTag($tag);
if(!$sharingModel || !$sharingModel->getRealObject())
{
return;
}
if(!$sharingModel->isToUser())
{
return;
}
if($sharingModel->getToEntity() !== self::CODE_USER . $userId)
{
return;
}
[, $tag] = $sharingModel->getNotifyTags();
CIMNotify::deleteByTag($tag);
if($value === 'N')
{
$sharingModel->decline($userId);
return;
}
if($sharingModel->approve())
{
$isFolder = $sharingModel->getLinkObject() instanceof Folder;
$linkToViewDocument = self::generateLinkToViewDocument($sharingModel, $sharingModel->getLinkObject());
$pathInListing = Driver::getInstance()->getUrlManager()->getUrlFocusController('showObjectInGrid', array(
'objectId' => $sharingModel->getLinkObjectId(),
'type' => $isFolder ? 'folder' : 'file',
));
$message = Loc::getMessage(
$isFolder ? 'DISK_SHARING_MODEL_AUTOCONNECT_NOTIFY' : 'DISK_SHARING_MODEL_AUTOCONNECT_NOTIFY_FILE',
array(
'#NAME#' => '' . $sharingModel->getLinkObject()->getName() . '',
'#DESCRIPTION#' => '',
'#DISCONNECT_LINK#' => '',
)
);
[$subTag, $tag] = $sharingModel->getNotifyTags();
Driver::getInstance()->sendNotify(mb_substr($sharingModel->getToEntity(), 1), array(
'FROM_USER_ID' => $sharingModel->getCreatedBy(),
'NOTIFY_EVENT' => 'sharing',
'NOTIFY_TAG' => $tag,
'NOTIFY_SUB_TAG' => $subTag,
'NOTIFY_MESSAGE' => $message,
'NOTIFY_MESSAGE_OUT' => strip_tags($message),
));
}
}