summaryrefslogtreecommitdiffstats
path: root/apps/calendar/lib/app.php
diff options
context:
space:
mode:
authorGeorg Ehrke <dev@georgswebsite.de>2012-03-31 16:13:04 -0400
committerGeorg Ehrke <dev@georgswebsite.de>2012-03-31 16:13:04 -0400
commit70237f7eccebbc83c57df3e7bc3585e285e52579 (patch)
treeb0e00b6026464694ba19bdb08aecc0b451e628b0 /apps/calendar/lib/app.php
parent10fc51dc925ab4655c8efb11cf476b021f67078e (diff)
downloadnextcloud-server-70237f7eccebbc83c57df3e7bc3585e285e52579.tar.gz
nextcloud-server-70237f7eccebbc83c57df3e7bc3585e285e52579.zip
rewrite OC_Calendar_APP class
Diffstat (limited to 'apps/calendar/lib/app.php')
-rw-r--r--apps/calendar/lib/app.php219
1 files changed, 143 insertions, 76 deletions
diff --git a/apps/calendar/lib/app.php b/apps/calendar/lib/app.php
index b4d9f844c19..8bc416d2ce4 100644
--- a/apps/calendar/lib/app.php
+++ b/apps/calendar/lib/app.php
@@ -1,143 +1,210 @@
<?php
/**
* Copyright (c) 2011 Bart Visscher <bartv@thisnet.nl>
+ * Copyright (c) 2012 Georg Ehrke <georg@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
- */
-
-/**
+ *
* This class manages our app actions
*/
OC_Calendar_App::$l10n = new OC_L10N('calendar');
class OC_Calendar_App{
+ /*
+ * @brief: language object for calendar app
+ */
public static $l10n;
- public static function getCalendar($id){
- return OC_Calendar_Calendar::find( $id );
- }
-
- public static function getEventObject($id){
- $event_object = OC_Calendar_Object::find( $id );
- if( $event_object === false ){
- OC_JSON::error();
- exit();
+ /*
+ * @brief: returns informations about a calendar
+ * @param: int $id - id of the calendar
+ * @param: bool $security - check access rights or not
+ * @param: bool $shared - check if the user got access via sharing
+ * @return: mixed - bool / array
+ */
+ public static function getCalendar($id, $security = true, $shared = false){
+ $calendar = OC_Calendar_Object::find($id);
+ if($shared === true){
+ if(OC_Calendar_Share::check_access(OC_User::getUser(), $id, OC_Calendar_Share::CALENDAR)){
+ return $calendar;
+ }
}
-
- //self::getCalendar( $event_object['calendarid'] );//access check
- return $event_object;
+ if($security === true){
+ if($calendar['userid'] != OC_User::getUser()){
+ return false;
+ }
+ }
+ if($calendar === false){
+ return false;
+ }
+ return OC_Calendar_Calendar::find($id);
}
-
- public static function check_access($id){
- $event_object = self::getEventObject($id);
- $calendar = self::getCalendar($event_object['calendarid']);
- if($calendar['userid'] == OC_User::getUser()){
- return 'owner';
+
+ /*
+ * @brief: returns informations about an event
+ * @param: int $id - id of the event
+ * @param: bool $security - check access rights or not
+ * @param: bool $shared - check if the user got access via sharing
+ * @return: mixed - bool / array
+ */
+ public static function getEventObject($id, $security = true, $shared = false){
+ $event = OC_Calendar_Object::find($id);
+ if($shared === true){
+ if(OC_Calendar_Share::check_access(OC_User::getUser(), $id, OC_Calendar_Share::EVENT)){
+ return $calendar;
+ }
}
- if(OC_Calendar_Share::check_access(OC_User::getUser(), $id, OC_Calendar_Share::EVENT)){
- if(OC_Calendar_Share::is_editing_allowed(OC_User::getUser(), $id, OC_Calendar_Share::EVENT)){
- return 'rw';
- }else{
- return 'r';
+ if($security === true){
+ $calendar = self::getCalendar($event['calendarid'], false);
+ if($calendar['userid'] != OC_User::getUser()){
+ return false;
}
}
- return false;
+ if($event === false){
+ return false;
+ }
+ return $event;
}
-
- public static function getVCalendar($id){
- $event_object = self::getEventObject( $id );
-
- $vcalendar = OC_VObject::parse($event_object['calendardata']);
- // Check if the vcalendar is valid
- if(is_null($vcalendar)){
- OC_JSON::error();
- exit();
+
+ /*
+ * @brief: returns the parsed calendar data
+ * @param: int $id - id of the event
+ * @param: bool $security - check access rights or not
+ * @return: mixed - bool / object
+ */
+ public static function getVCalendar($id, $security = true){
+ $event_object = self::getEventObject($id, $security);
+ if($event_object === false){
+ return false;
+ }
+ $vobject = OC_VObject::parse($event_object['calendardata']);
+ if(is_null($vobject)){
+ return false;
}
- return $vcalendar;
+ return $vobject;
}
-
- public static function isNotModified($vevent, $lastmodified)
- {
+
+ /*
+ *
+ */
+ public static function isNotModified($vevent, $lastmodified){
$last_modified = $vevent->__get('LAST-MODIFIED');
if($last_modified && $lastmodified != $last_modified->getDateTime()->format('U')){
OC_JSON::error(array('modified'=>true));
exit;
}
}
-
- public static function getCategoryOptions()
- {
- return array(
- self::$l10n->t('Birthday'),
- self::$l10n->t('Business'),
- self::$l10n->t('Call'),
- self::$l10n->t('Clients'),
- self::$l10n->t('Deliverer'),
- self::$l10n->t('Holidays'),
- self::$l10n->t('Ideas'),
- self::$l10n->t('Journey'),
- self::$l10n->t('Jubilee'),
- self::$l10n->t('Meeting'),
- self::$l10n->t('Other'),
- self::$l10n->t('Personal'),
- self::$l10n->t('Projects'),
- self::$l10n->t('Questions'),
- self::$l10n->t('Work'),
- );
+ /*
+ * THIS FUNCTION IS DEPRECATED AND WILL BE REMOVED SOON
+ * @brief: returns the valid categories
+ * @return: array - categories
+ */
+ public static function getCategoryOptions(){
+ return OC_Calendar_Object::getCategoryOptions(self::$l10n);
}
-
+
+ /*
+ * @brief: returns the options for an repeating event
+ * @return: array - valid inputs for repeating events
+ */
public static function getRepeatOptions(){
return OC_Calendar_Object::getRepeatOptions(self::$l10n);
}
-
+
+ /*
+ * @brief: returns the options for the end of an repeating event
+ * @return: array - valid inputs for the end of an repeating events
+ */
public static function getEndOptions(){
return OC_Calendar_Object::getEndOptions(self::$l10n);
}
-
+
+ /*
+ * @brief: returns the options for an monthly repeating event
+ * @return: array - valid inputs for monthly repeating events
+ */
public static function getMonthOptions(){
return OC_Calendar_Object::getMonthOptions(self::$l10n);
}
-
+
+ /*
+ * @brief: returns the options for an weekly repeating event
+ * @return: array - valid inputs for weekly repeating events
+ */
public static function getWeeklyOptions(){
return OC_Calendar_Object::getWeeklyOptions(self::$l10n);
}
-
+
+ /*
+ * @brief: returns the options for an yearly repeating event
+ * @return: array - valid inputs for yearly repeating events
+ */
public static function getYearOptions(){
return OC_Calendar_Object::getYearOptions(self::$l10n);
}
-
+
+ /*
+ * @brief: returns the options for an yearly repeating event which occurs on specific days of the year
+ * @return: array - valid inputs for yearly repeating events
+ */
public static function getByYearDayOptions(){
return OC_Calendar_Object::getByYearDayOptions();
}
-
+
+ /*
+ * @brief: returns the options for an yearly repeating event which occurs on specific month of the year
+ * @return: array - valid inputs for yearly repeating events
+ */
public static function getByMonthOptions(){
return OC_Calendar_Object::getByMonthOptions(self::$l10n);
}
+ /*
+ * @brief: returns the options for an yearly repeating event which occurs on specific week numbers of the year
+ * @return: array - valid inputs for yearly repeating events
+ */
public static function getByWeekNoOptions(){
return OC_Calendar_Object::getByWeekNoOptions();
}
-
+
+ /*
+ * @brief: returns the options for an yearly or monthly repeating event which occurs on specific days of the month
+ * @return: array - valid inputs for yearly or monthly repeating events
+ */
public static function getByMonthDayOptions(){
return OC_Calendar_Object::getByMonthDayOptions();
}
+ /*
+ * @brief: returns the options for an monthly repeating event which occurs on specific weeks of the month
+ * @return: array - valid inputs for monthly repeating events
+ */
public static function getWeekofMonth(){
return OC_Calendar_Object::getWeekofMonth(self::$l10n);
}
- public static function prepareForOutput($event, $vevent){
- $return_event = array();
- $return_event['id'] = (int)$event['id'];
- $return_event['title'] = htmlspecialchars(($event['summary']!=NULL || $event['summary'] != '')?$event['summary']: self::$l10n->t('unnamed'));
- $return_event['description'] = isset($vevent->DESCRIPTION)?htmlspecialchars($vevent->DESCRIPTION->value):'';
- $last_modified = $vevent->__get('LAST-MODIFIED');
+ /*
+ * @brief: returns the prepared output for the json calendar data
+ * @param: array $event - array with event informations (self::getEventObject)
+ * @return: array - prepared output
+ */
+ public static function prepareForOutput($event){
+ if(isset($event['calendardata'])){
+ $object = self::getVCalendar($event['calendardata'], false);
+ $vevent = $object->VEVENT;
+ }else{
+ $vevent = $event['vevent'];
+ }$last_modified = $vevent->__get('LAST-MODIFIED');
if ($last_modified){
$lastmodified = $last_modified->getDateTime()->format('U');
}else{
$lastmodified = 0;
}
- $return_event['lastmodified'] = (int)$lastmodified;
- return $return_event;
+ $last_modified = ($vevent->__get('LAST-MODIFIED'))?$last_modified->getDateTime()->format('U'):0;
+ $return = array('id'=>(int)$event['id'],
+ 'title' => htmlspecialchars(($event['summary']!=NULL || $event['summary'] != '')?$event['summary']: self::$l10n->t('unnamed')),
+ 'description' => isset($vevent->DESCRIPTION)?htmlspecialchars($vevent->DESCRIPTION->value):'',
+ 'lastmodified'=>(int)$lastmodified);
+ return $return;
}
}