public function processActionShare(array $params) { $this->params = $params; $attachSectionData = $this->getSectionDataByAttachObject($params['attachObject']); \CWebDavSymlinkHelper::setPathPattern('user', $params['pathToUser']); \CWebDavSymlinkHelper::setPathPattern('group', $params['pathToGroup']); $result = array(); foreach ($params['attachToUserIds'] as $userIdToShare) { if ($userIdToShare == $params['inviteFromUserId']) { //to owner we don't create really symlink. Already there section. $result[] = array('userId' => $attachSectionData['SECTION_ID']); continue; } $targetSectionData = $this->getSectionDataByUserId($userIdToShare); $targetSectionData['IBLOCK_SECTION_ID'] = $targetSectionData['SECTION_ID']; $linkData = array('ID' => $attachSectionData['SECTION_ID'], 'IBLOCK_ID' => $attachSectionData['IBLOCK_ID'], 'NAME' => $this->generateNameForSymLinkSection($targetSectionData, $params['attachObject']), 'CREATED_BY' => $params['inviteFromUserId'], 'INVITE_USER_ID' => $userIdToShare, 'CAN_EDIT' => $params['canEdit'], 'CAN_FORWARD' => 0); $symlinkSectionId = \CWebDavSymlinkHelper::createSymLinkSection($targetSectionData, $linkData, $params['attachObject']['type']); if ($symlinkSectionId) { $result[] = array('userId' => $symlinkSectionId); } } if ($result) { \CWebDavDiskDispatcher::sendChangeStatus($params['inviteFromUserId'], 'share_section'); global $DB; //update timestamp_x for incremental snapshot from disk. $section = new \CIBlockSection(); $section->update($attachSectionData['SECTION_ID'], array('~TIMESTAMP_X' => $DB->getNowFunction()), false, false); return $this->sendJsonResponse(array('status' => self::STATUS_SUCCESS, 'sections' => $result)); } return $this->sendJsonResponse(array('status' => self::STATUS_ERROR)); }