/** * @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; }