/** * @brief Returns the list of calendars for a specific user. * @param string $uid User ID * @param boolean $active Only return calendars with this $active state, default(=false) is don't care * @param boolean $bSubscribe return calendars with this $issubscribe state, default(=true) is don't care * @return array */ public function all($active = false, $bSubscribe = true) { $calendarDB = new CalendarDAO($this->db, $this->userId); $calendars = $calendarDB->all($active, $bSubscribe); $calendars = array_merge($calendars, $this->shareConnector->getItemsSharedWithCalendar()); \OCP\Util::emitHook('OCA\\CalendarPlus', 'getCalendars', array('calendar' => &$calendars)); return $calendars; }
/** * @brief merges two calendars * @param integer $id1 * @param integer $id2 * @return boolean */ public static function mergeCalendar($id1, $id2) { $calendar = self::find($id1); $group = \OC::$server->getGroupManager()->get('admin'); $user = \OCP\User::getUser(); if ($calendar['userid'] !== $user && !$group->inGroup(\OC::$server->getUserSession()->getUser())) { $sharedCalendar = \OCP\Share::getItemSharedWithBySource(App::SHARECALENDAR, App::SHARECALENDARPREFIX . $id1); if (!$sharedCalendar || !($sharedCalendar['permissions'] & \OCP\PERMISSION_UPDATE)) { throw new \Exception(App::$l10n->t('You do not have the permissions to add to this calendar.')); } } $dbObject = \OC::$server->getDb(); $calendarDB = new CalendarDAO($dbObject, $user); $bMergeCalendar = $calendarDB->merge($id1, $id2); if ($bMergeCalendar === true) { self::touchCalendar($id1); self::deleteCalendar($id2); return $bMergeCalendar; } else { return $bMergeCalendar; } }