Exemplo n.º 1
0
 public static function OnSocNetGroupDelete($groupId)
 {
     $iblockIds = self::GetGroupIblock();
     foreach ($iblockIds as $iblockId) {
         $result = CIBlockWebdavSocnet::GetSectionID($iblockId, 'group', $groupId);
         if (intval($result) > 0) {
             if (!empty($groupId)) {
                 $dispatcher = new \Bitrix\Webdav\InviteDispatcher();
                 $attachObjectType = CWebDavSymlinkHelper::ENTITY_TYPE_GROUP;
                 $attachObjectId = (int) $groupId;
                 $inviteComponentParams = array('attachObject' => array('id' => $attachObjectId, 'type' => $attachObjectType), 'unshareUserIds' => array());
                 $response = $dispatcher->processActionUnshare($inviteComponentParams);
                 if ($response['status'] == $dispatcher::STATUS_SUCCESS) {
                 }
             }
             CIBlockSection::Delete($result);
         }
     }
     CIBlockWebdavSocnet::ClearTagCache('wd_socnet');
 }
Exemplo n.º 2
0
 public static function onBeforeConfirmNotify($module, $tag, $value, $arNotify)
 {
     global $USER;
     $userId = $USER->getId();
     if ($module == 'webdav' && $userId) {
         $tagData = explode('|', $tag);
         $folderInviteId = intval($tagData[2]);
         if ($tagData[0] == "WEBDAV" && $tagData[1] == "INVITE" && $folderInviteId > 0 && $userId == $tagData[3]) {
             if (\Bitrix\Main\Loader::includeModule('im')) {
                 CIMNotify::DeleteByTag(\Bitrix\Webdav\FolderInviteTable::getNotifyTag(array('ID' => $folderInviteId, 'INVITE_USER_ID' => $userId)));
             }
             //decline
             if ($value === 'N') {
                 \Bitrix\Webdav\FolderInviteTable::delete($folderInviteId);
                 return false;
             }
             $targetSectionData = CWebDavIblock::getRootSectionDataForUser($userId);
             if (!$targetSectionData) {
                 return false;
             }
             $folderInviteData = \Bitrix\Webdav\FolderInviteTable::getRowById($folderInviteId);
             if (!$folderInviteData) {
                 return false;
             }
             $sectionToShare = CIBlockSection::getList(array(), array('ID' => $folderInviteData['SECTION_ID'], 'IBLOCK_ID' => $folderInviteData['IBLOCK_ID'], 'CHECK_PERMISSIONS' => 'N'), false, array('NAME', 'SOCNET_GROUP_ID'))->fetch();
             if (empty($sectionToShare['NAME']) || empty($sectionToShare['SOCNET_GROUP_ID'])) {
                 return false;
             }
             if (\Bitrix\Main\Loader::includeModule('socialnetwork')) {
                 $group = CSocNetGroup::GetList(array(), array('ID' => $sectionToShare['SOCNET_GROUP_ID']), false, false, array('NAME'))->fetch();
             }
             if (empty($group)) {
                 return false;
             }
             $groupId = $sectionToShare['SOCNET_GROUP_ID'];
             $dispatcher = new \Bitrix\Webdav\InviteDispatcher();
             $attachObjectType = CWebDavSymlinkHelper::ENTITY_TYPE_GROUP;
             $attachObjectId = (int) $groupId;
             $inviteComponentParams = array('attachObject' => array('id' => $attachObjectId, 'type' => $attachObjectType), 'attachToUserId' => $folderInviteData['INVITE_USER_ID'], 'inviteFromUserId' => $folderInviteData['USER_ID'], 'canEdit' => $folderInviteData['CAN_EDIT']);
             $response = $dispatcher->processActionConnect($inviteComponentParams);
             if ($response['status'] == $dispatcher::STATUS_SUCCESS) {
                 \Bitrix\Webdav\FolderInviteTable::update($folderInviteId, array('IS_APPROVED' => true, 'LINK_SECTION_ID' => $response['sectionId']));
             }
             return $response['status'] == $dispatcher::STATUS_SUCCESS;
         }
     }
 }