Esempio n. 1
0
 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));
 }