Exemplo n.º 1
0
 /**
  * @brief exports an event and convert all times to UTC
  * @param integer $id id of the event
  * @return string
  */
 private static function event($id)
 {
     $event = OC_Calendar_Object::find($id);
     $return = "BEGIN:VCALENDAR\nVERSION:2.0\nPRODID:ownCloud Calendar " . OCP\App::getAppVersion('calendar') . "\nX-WR-CALNAME:" . $event['summary'] . "\n";
     $return .= self::generateEvent($event);
     $return .= "END:VCALENDAR";
     return $return;
 }
Exemplo n.º 2
0
 public function formatItems($items, $format, $parameters = null)
 {
     $events = array();
     if ($format == self::FORMAT_EVENT) {
         foreach ($items as $item) {
             $event = OC_Calendar_Object::find($item['item_source']);
             $event['summary'] = $item['item_target'];
             $event['permissions'] = $item['permissions'];
             $events[] = $event;
         }
     }
     return $events;
 }
Exemplo n.º 3
0
 public function formatItems($items, $format, $parameters = null)
 {
     $events = array();
     if ($format == self::FORMAT_EVENT) {
         foreach ($items as $item) {
             $event = OC_Calendar_Object::find($item['item_source']);
             if ($event == False) {
                 \OCP\Util::writeLog('calendar', __METHOD__ . ', Missing event: ' . $item['item_target'], \OCP\Util::DEBUG);
             } else {
                 $event['summary'] = $item['item_target'];
                 $event['permissions'] = $item['permissions'];
                 $events[] = $event;
             }
         }
     }
     return $events;
 }
Exemplo n.º 4
0
 /**
  * @brief generates the cache the first time
  * @param (int) id - id of the event
  * @return (bool)
  */
 public static function generate($id)
 {
     $event = OC_Calendar_Object::find($id);
     if ($event['repeating'] == 0) {
         return false;
     }
     $object = OC_VObject::parse($event['calendardata']);
     $start = new DateTime('01-01-' . date('Y') . ' 00:00:00', new DateTimeZone('UTC'));
     $start->modify('-5 years');
     $end = new DateTime('31-12-' . date('Y') . ' 23:59:59', new DateTimeZone('UTC'));
     $end->modify('+5 years');
     $object->expand($start, $end);
     foreach ($object->getComponents() as $vevent) {
         if (!$vevent instanceof Sabre\VObject\Component\VEvent) {
             continue;
         }
         $startenddate = OC_Calendar_Object::generateStartEndDate($vevent->DTSTART, OC_Calendar_Object::getDTEndFromVEvent($vevent), $vevent->DTSTART->getDateType() == Sabre\VObject\Property\DateTime::DATE ? true : false, 'UTC');
         $stmt = OCP\DB::prepare('INSERT INTO `*PREFIX*calendar_repeat` (`eventid`,`calid`,`startdate`,`enddate`) VALUES(?,?,?,?)');
         $stmt->execute(array($id, OC_Calendar_Object::getCalendarid($id), $startenddate['start'], $startenddate['end']));
     }
     return true;
 }
Exemplo n.º 5
0
 /**
  * @brief Get the permissions for a calendar / an event
  * @param (int) $id - id of the calendar / event
  * @param (string) $type - type of the id (calendar/event)
  * @return (int) $permissions - CRUDS permissions
  * @param (string) $accessclass - access class (rfc5545, section 3.8.1.3)
  * @see OCP\Share
  */
 public static function getPermissions($id, $type, $accessclass = '')
 {
     $permissions_all = OCP\PERMISSION_ALL;
     if ($type == self::CALENDAR) {
         $calendar = self::getCalendar($id, false, false);
         if ($calendar['userid'] == OCP\USER::getUser()) {
             return $permissions_all;
         } else {
             $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $id);
             if ($sharedCalendar) {
                 return $sharedCalendar['permissions'];
             }
         }
     } elseif ($type == self::EVENT) {
         if (OC_Calendar_Object::getowner($id) == OCP\USER::getUser()) {
             return $permissions_all;
         } else {
             $object = OC_Calendar_Object::find($id);
             $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $object['calendarid']);
             $sharedEvent = OCP\Share::getItemSharedWithBySource('event', $id);
             $calendar_permissions = 0;
             $event_permissions = 0;
             if ($sharedCalendar) {
                 $calendar_permissions = $sharedCalendar['permissions'];
             }
             if ($sharedEvent) {
                 $event_permissions = $sharedEvent['permissions'];
             }
             if ($accessclass === 'PRIVATE') {
                 return 0;
             } elseif ($accessclass === 'CONFIDENTIAL') {
                 return OCP\PERMISSION_READ;
             } else {
                 return max($calendar_permissions, $event_permissions);
             }
         }
     }
     return 0;
 }
Exemplo n.º 6
0
    private function isDuplicate($insertid)
    {
        $newobject = OC_Calendar_Object::find($insertid);
        $stmt = OCP\DB::prepare('SELECT COUNT(*) AS `count` FROM `*PREFIX*clndr_objects`
								 INNER JOIN `*PREFIX*clndr_calendars` ON `calendarid`=`*PREFIX*clndr_calendars`.`id`
								 WHERE `objecttype`=? AND `startdate`=? AND `enddate`=? AND `repeating`=? AND `summary`=? AND `calendardata`=? AND `userid` = ?');
        $result = $stmt->execute(array($newobject['objecttype'], $newobject['startdate'], $newobject['enddate'], $newobject['repeating'], $newobject['summary'], $newobject['calendardata'], $this->userid));
        $result = $result->fetchRow();
        if ($result['count'] >= 2) {
            return true;
        }
        return false;
    }
Exemplo n.º 7
0
 $taskId = $task['id'];
 $comments = $vtodo->COMMENT;
 if ($comments) {
     foreach ($comments as $com) {
         $idx = 0;
         foreach ($children as $i => &$property) {
             if ($property->name == 'COMMENT' && $property['ID']->value == (int) $com['ID']->value) {
                 unset($vtodo->children[$idx]);
             }
             $idx += 1;
         }
         $vtodo->addProperty('COMMENT', $com->value, array('X-OC-ID' => (int) $com['ID']->value, 'X-OC-USERID' => $com['USERID']->value, 'X-OC-DATE-TIME' => $com['DATE-TIME']->value));
         OCP\Util::emitHook('OC_Calendar', 'editEvent', $taskId);
     }
     $data = $vcalendar->serialize();
     $oldobject = \OC_Calendar_Object::find($taskId);
     $object = \OC_VObject::parse($data);
     $type = 'VTODO';
     $startdate = null;
     $enddate = null;
     $summary = '';
     $repeating = 0;
     $uid = null;
     foreach ($object->children as $property) {
         if ($property->name == 'VTODO') {
             foreach ($property->children as &$element) {
                 if ($element->name == 'SUMMARY') {
                     $summary = $element->value;
                 } elseif ($element->name == 'UID') {
                     $uid = $element->value;
                 }
 * Copyright (c) 2011 Bart Visscher <*****@*****.**>
 * This file is licensed under the Affero General Public License version 3 or
 * later.
 * See the COPYING-README file.
 */
require_once '../../../lib/base.php';
$l10n = new OC_L10N('calendar');
if (!OC_USER::isLoggedIn()) {
    die('<script type="text/javascript">document.location = oc_webroot;</script>');
}
OC_JSON::checkAppEnabled('calendar');
$calendar_options = OC_Calendar_Calendar::allCalendars(OC_User::getUser());
$category_options = OC_Calendar_Object::getCategoryOptions($l10n);
$repeat_options = OC_Calendar_Object::getRepeatOptions($l10n);
$id = $_GET['id'];
$data = OC_Calendar_Object::find($id);
$calendar = OC_Calendar_Calendar::findCalendar($data['calendarid']);
if ($calendar['userid'] != OC_User::getUser()) {
    echo $l10n->t('Wrong calendar');
    exit;
}
$object = Sabre_VObject_Reader::read($data['calendardata']);
$vevent = $object->VEVENT;
$dtstart = $vevent->DTSTART;
$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
switch ($dtstart->getDateType()) {
    case Sabre_VObject_Element_DateTime::LOCALTZ:
    case Sabre_VObject_Element_DateTime::LOCAL:
        $startdate = $dtstart->getDateTime()->format('d-m-Y');
        $starttime = $dtstart->getDateTime()->format('H:i');
        $enddate = $dtend->getDateTime()->format('d-m-Y');
Exemplo n.º 9
0
 private static function generate_token($id, $type)
 {
     $uniqid = uniqid();
     if ($type == self::CALENDAR) {
         $events = OC_Calendar_Object::all($id);
         $string = '';
         foreach ($events as $event) {
             $string .= $event['calendardata'];
         }
     } else {
         $string = OC_Calendar_Object::find($id);
     }
     $string = sha1($string['calendardata']);
     $id = sha1($id);
     $array = array($uniqid, $string, $id);
     shuffle($array);
     $string = implode('', $array);
     $token = md5($string);
     return substr($token, rand(0, 16), 15);
 }
Exemplo n.º 10
0
<?php

// Init owncloud
OCP\JSON::checkLoggedIn();
OCP\JSON::checkAppEnabled('tasks');
$l10n = new OC_L10N('tasks');
$id = $_GET['id'];
$task = OC_Calendar_Object::find($id);
$details = OC_VObject::parse($task['calendardata']);
if (!$details) {
    OCP\JSON::error();
    exit;
}
$priority_options = OC_Task_App::getPriorityOptions();
$tmpl = new OCP\Template('tasks', 'part.details');
$tmpl->assign('priority_options', $priority_options);
$tmpl->assign('details', $details->VTODO);
$tmpl->assign('id', $id);
$page = $tmpl->fetchPage();
OCP\JSON::success(array('data' => array('id' => $id, 'page' => $page)));
Exemplo n.º 11
0
 public static function getrequestedEvents($calendarid, $start, $end)
 {
     $events = array();
     if ($calendarid == 'shared_rw' || $calendarid == 'shared_r') {
         $calendars = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::CALENDAR, 1, $_GET['calendar_id'] == 'shared_rw' ? 'rw' : 'r');
         foreach ($calendars as $calendar) {
             $calendarevents = OC_Calendar_Object::allInPeriod($calendar['calendarid'], $start, $end);
             foreach ($calendarevents as $event) {
                 $event['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($event['id']) . ')';
             }
             $events = array_merge($events, $calendarevents);
         }
         $singleevents = OC_Calendar_Share::allSharedwithuser(OCP\USER::getUser(), OC_Calendar_Share::EVENT, 1, $_GET['calendar_id'] == 'shared_rw' ? 'rw' : 'r');
         foreach ($singleevents as $singleevent) {
             $event = OC_Calendar_Object::find($singleevent['eventid']);
             if (!array_key_exists('summary', $event)) {
                 $event['summary'] = self::$l10n->t('unnamed');
             }
             $event['summary'] .= ' (' . self::$l10n->t('by') . ' ' . OC_Calendar_Object::getowner($event['id']) . ')';
             $events[] = $event;
         }
     } else {
         if (is_numeric($calendarid)) {
             $calendar = self::getCalendar($calendarid);
             OCP\Response::enableCaching(0);
             OCP\Response::setETagHeader($calendar['ctag']);
             $events = OC_Calendar_Object::allInPeriod($calendarid, $start, $end);
         } else {
             OCP\Util::emitHook('OC_Calendar', 'getEvents', array('calendar_id' => $calendarid, 'events' => &$events));
         }
     }
     return $events;
 }
Exemplo n.º 12
0
 /**
  * @brief Get the permissions for a calendar / an event
  * @param (int) $id - id of the calendar / event
  * @param (string) $type - type of the id (calendar/event)
  * @return (int) $permissions - CRUDS permissions
  * @see OCP\Share
  */
 public static function getPermissions($id, $type)
 {
     $permissions_all = OCP\Share::PERMISSION_CREATE | OCP\Share::PERMISSION_READ | OCP\Share::PERMISSION_UPDATE | OCP\Share::PERMISSION_DELETE | OCP\Share::PERMISSION_SHARE;
     if ($type == self::CALENDAR) {
         $calendar = self::getCalendar($id, false, false);
         if ($calendar['userid'] == OCP\USER::getUser()) {
             return $permissions_all;
         } else {
             $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $id);
             if ($sharedCalendar) {
                 return $sharedCalendar['permissions'];
             }
         }
     } elseif ($type == self::EVENT) {
         if (OC_Calendar_Object::getowner($id) == OCP\USER::getUser()) {
             return $permissions_all;
         } else {
             $object = OC_Calendar_Object::find($id);
             $sharedCalendar = OCP\Share::getItemSharedWithBySource('calendar', $object['calendarid']);
             $sharedEvent = OCP\Share::getItemSharedWithBySource('event', $id);
             $calendar_permissions = 0;
             $event_permissions = 0;
             if ($sharedCalendar) {
                 $calendar_permissions = $sharedCalendar['permissions'];
             }
             if ($sharedEvent) {
                 $event_permissions = $sharedEvent['permissions'];
             }
             return max($calendar_permissions, $event_permissions);
         }
     }
     return 0;
 }
 * See the COPYING-README file.
 */
require_once "../../lib/base.php";
OC_Util::checkLoggedIn();
OC_Util::checkAppEnabled('calendar');
$cal = $_GET["calid"];
$event = $_GET["eventid"];
if (isset($cal)) {
    $calendar = OC_Calendar_Calendar::findCalendar($cal);
    if ($calendar["userid"] != OC_User::getUser()) {
        OC_JSON::error();
        exit;
    }
    $calobjects = OC_Calendar_Object::all($cal);
    header("Content-Type: text/Calendar");
    header("Content-Disposition: inline; filename=calendar.ics");
    for ($i = 0; $i <= count($calobjects); $i++) {
        echo $calobjects[$i]["calendardata"] . "\n";
    }
} elseif (isset($event)) {
    $data = OC_Calendar_Object::find($_GET["eventid"]);
    $calendarid = $data["calendarid"];
    $calendar = OC_Calendar_Calendar::findCalendar($calendarid);
    if ($calendar["userid"] != OC_User::getUser()) {
        OC_JSON::error();
        exit;
    }
    header("Content-Type: text/Calendar");
    header("Content-Disposition: inline; filename=" . $data["summary"] . ".ics");
    echo $data["calendardata"];
}
<?php

/**
 * Copyright (c) 2011 Georg Ehrke <ownclouddev at georgswebsite dot de>
 * This file is licensed under the Affero General Public License version 3 or
 * later.
 * See the COPYING-README file.
 */
error_reporting(E_ALL);
require_once '../../../lib/base.php';
OC_JSON::checkLoggedIn();
$data = OC_Calendar_Object::find($_POST["id"]);
$calendarid = $data["calendarid"];
$cal = $calendarid;
$id = $_POST["id"];
$calendar = OC_Calendar_Calendar::findCalendar($calendarid);
if (OC_User::getUser() != $calendar["userid"]) {
    OC_JSON::error();
    exit;
}
$newdate = $_POST["newdate"];
$caldata = array();
//modified part of editeventform.php
$object = Sabre_VObject_Reader::read($data['calendardata']);
$vevent = $object->VEVENT;
$dtstart = $vevent->DTSTART;
$dtend = OC_Calendar_Object::getDTEndFromVEvent($vevent);
switch ($dtstart->getDateType()) {
    case Sabre_VObject_Element_DateTime::LOCALTZ:
    case Sabre_VObject_Element_DateTime::LOCAL:
        $startdate = $dtstart->getDateTime()->format('d-m-Y');