This is not for DAV content storage, but for metadata storage.
Author: Jan Schneider (jan@horde.org)
示例#1
0
文件: Dav.php 项目: horde/horde
 protected function _postSave(Kronolith_Event $event)
 {
     global $registry;
     if (!$this->_dav->getInternalObjectId($this->_params['object'], $this->_calendar)) {
         $this->_dav->addObjectMap($event->id, $this->_params['object'], $this->_calendar);
     }
     // Send iTip messages if necessary.
     $type = Kronolith::ITIP_REQUEST;
     if ($event->organizer && !Kronolith::isUserEmail($event->creator, $event->organizer)) {
         $type = Kronolith::ITIP_REPLY;
     }
     $event_copy = clone $event;
     $event_copy->attendees = $event->attendees->without($this->_noItips);
     $notification = new Horde_Notification_Handler(new Horde_Notification_Storage_Object());
     Kronolith::sendITipNotifications($event_copy, $notification, $type);
     // Send ITIP_CANCEL to any attendee that was removed, but only if this
     // is the ORGANZIER's copy of the event.
     if (empty($event->organizer) || $registry->getAuth() == $event->creator && Kronolith::isUserEmail($event->creator, $event->organizer)) {
         $removed_attendees = new Kronolith_Attendee_List();
         foreach ($this->_oldAttendees as $old_attendee) {
             if (!$event->attendees->has($old_attendee)) {
                 $removed_attendees->add($old_attendee);
             }
         }
         if (count($removed_attendees)) {
             $cancelEvent = clone $event;
             Kronolith::sendITipNotifications($cancelEvent, $notification, Kronolith::ITIP_CANCEL, null, null, $removed_attendees);
         }
     }
 }
示例#2
0
 /**
  * Returns the application that owns a certain calendar or task list.
  *
  * @param string $calendarId  An external calendar or task list id.
  *
  * @return string  The application that owns the calendar or task list.
  * @throws Sabre\DAV\Exception if the application cannot be found.
  */
 protected function _interface($calendarId)
 {
     $interface = $this->_storage->getCollectionInterface($calendarId);
     if (!$interface || !isset($this->_interfaces[$interface])) {
         throw new DAV\Exception(sprintf('No interface found for calendar %s', $calendarId));
     }
     return $this->_interfaces[$interface];
 }