/** * Catches event from IM module, when user click on buttons in notify. * @param string $module Module. * @param string $tag Tag. * @param string $value Value. * @param mixed $notify Notify. * @return void */ public static function onBeforeConfirmNotify($module, $tag, $value, $notify) { global $USER; $userId = $USER->getId(); if (!($module === Driver::INTERNAL_MODULE_ID && $userId)) { return; } $sharingModel = static::loadByNotifyTag($tag); if (!$sharingModel) { return; } if (!$sharingModel->isToUser()) { return; } if ($sharingModel->getToEntity() !== self::CODE_USER . $userId) { return; } list(, $tag) = $sharingModel->getNotifyTags(); \CIMNotify::deleteByTag($tag); if ($value === 'N') { $sharingModel->decline($userId); return; } if ($sharingModel->approve()) { $isFolder = $sharingModel->getLinkObject() instanceof Folder; $pathInListing = Driver::getInstance()->getUrlManager()->getUrlFocusController('showObjectInGrid', array('objectId' => $sharingModel->getLinkObjectId())); $message = Loc::getMessage($isFolder ? 'DISK_SHARING_MODEL_AUTOCONNECT_NOTIFY' : 'DISK_SHARING_MODEL_AUTOCONNECT_NOTIFY_FILE', array('#NAME#' => '<a href="' . $pathInListing . '">' . $sharingModel->getLinkObject()->getName() . '</a>', '#DESCRIPTION#' => '', '#DISCONNECT_LINK#' => '')); list($subTag, $tag) = $sharingModel->getNotifyTags(); Driver::getInstance()->sendNotify(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))); } }
public static function onBeforeConfirmNotify($module, $tag, $value, $notify) { global $USER; $userId = $USER->getId(); if (!($module == Driver::INTERNAL_MODULE_ID && $userId)) { return; } $sharingModel = static::loadByNotifyTag($tag); if (!$sharingModel) { return; } if (!$sharingModel->isToUser()) { return; } if ($sharingModel->getToEntity() != self::CODE_USER . $userId) { return; } list(, $tag) = $sharingModel->getNotifyTags(); \CIMNotify::deleteByTag($tag); if ($value === 'N') { $sharingModel->decline($userId); return; } $sharingModel->approve(); return; }
private static function removeNotifyToUser(array $folderInvite) { if (\Bitrix\Main\Loader::includeModule('im')) { \CIMNotify::deleteByTag(self::getNotifyTag($folderInvite)); } \CWebDavDiskDispatcher::sendChangeStatus($folderInvite['INVITE_USER_ID'], 'delete_symlink'); }