Exemplo n.º 1
0
 /**
  * @brief deletes an object
  * @param integer $id id of object
  * @return boolean
  */
 public static function delete($id)
 {
     $oldobject = self::find($id);
     $calid = self::getCalendarid($id);
     $calendar = OC_Calendar_Calendar::find($calid);
     $oldvobject = OC_VObject::parse($oldobject['calendardata']);
     if ($calendar['userid'] != OCP\User::getUser()) {
         $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $calid);
         $sharedAccessClassPermissions = OC_Calendar_Object::getAccessClassPermissions($oldvobject);
         if (!$sharedCalendar || !($sharedCalendar['permissions'] & OCP\PERMISSION_DELETE) || !($sharedAccessClassPermissions & OCP\PERMISSION_DELETE)) {
             throw new Exception(OC_Calendar_App::$l10n->t('You do not have the permissions to delete this event.'));
         }
     }
     $stmt = OCP\DB::prepare('DELETE FROM `*PREFIX*clndr_objects` WHERE `id` = ?');
     $stmt->execute(array($id));
     OC_Calendar_Calendar::touchCalendar($oldobject['calendarid']);
     OCP\Share::unshareAll('event', $id);
     OCP\Util::emitHook('OC_Calendar', 'deleteEvent', $id);
     OC_Calendar_App::getVCategories()->purgeObject($id);
     return true;
 }