Exemplo n.º 1
0
 /**
  * removes a calendar
  * @param integer $id
  * @param boolean $bLogActivity
  * @return associative array
  */
 public function delete($id, $bLogActivity = true)
 {
     $calendar = $this->find($id);
     //\OCP\Util::writeLog('DAV', 'DEL ID-> '.$id, \OCP\Util::DEBUG);
     $group = \OC::$server->getGroupManager()->get('admin');
     $this->setUserId(\OCP\User::getUser());
     if ($calendar['userid'] !== $this->userId && !$group->inGroup($this->userId)) {
         $sharedCalendar = $this->shareConnector->getItemSharedWithBySourceCalendar($id);
         if (!$sharedCalendar || !($sharedCalendar['permissions'] & $this->shareConnector->getDeleteAccess())) {
             throw new \Sabre\DAV\Exception\Forbidden('You do not have the permissions to delete this calendar.');
         }
     }
     $calendarDB = new CalendarDAO($this->db, $this->userId);
     $bDeleteCalendar = $calendarDB->delete($id);
     if ($bDeleteCalendar === true) {
         \OCP\Util::emitHook('\\OCA\\CalendarPlus', 'deleteCalendar', $id);
         $this->deleteObjects($id);
         $this->shareConnector->unshareAllCalendar($id);
         $app = new Application();
         $c = $app->getContainer();
         $repeatController = $c->query('RepeatController');
         $repeatController->cleanCalendar($id);
         $calendars = $this->all(false, false);
         if (\OCP\USER::isLoggedIn() && count($calendars) === 0 || count($calendars) === 1 && $calendars[0]['id'] === 'birthday_' . $this->userId) {
             //self::addDefaultCalendars($user);
         }
         if ($bLogActivity === true) {
             $link = \OC::$server->getURLGenerator()->linkToRoute('calendarplus.page.index');
             $params = array('mode' => 'deleted', 'link' => $link, 'trans_type' => '', 'summary' => $calendar['displayname'], 'cal_user' => $this->userId, 'cal_displayname' => $calendar['displayname']);
             ActivityData::logEventActivity($params, false, true);
         }
         return $bDeleteCalendar;
     } else {
         return $bDeleteCalendar;
     }
 }
Exemplo n.º 2
0
 /**
  * @brief removes a calendar
  * @param integer $id
  * @return boolean
  */
 public static function deleteCalendar($id)
 {
     $calendar = self::find($id);
     //\OCP\Util::writeLog('DAV', 'DEL ID-> '.$id, \OCP\Util::DEBUG);
     $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 . $id);
         if (!$sharedCalendar || !($sharedCalendar['permissions'] & \OCP\PERMISSION_DELETE)) {
             throw new \Exception(App::$l10n->t('You do not have the permissions to delete this calendar.'));
         }
     }
     $dbObject = \OC::$server->getDb();
     $calendarDB = new CalendarDAO($dbObject, $user);
     $bDeleteCalendar = $calendarDB->delete($id);
     if ($bDeleteCalendar === true) {
         $stmt = \OCP\DB::prepare('DELETE FROM `' . App::CldObjectTable . '` WHERE `calendarid` = ?');
         $stmt->execute(array($id));
         \OCP\Share::unshareAll(App::SHARECALENDAR, App::SHARECALENDARPREFIX . $id);
         //\OCP\Util::emitHook('\OCA\CalendarPlus', 'deleteCalendar', $id);
         $app = new Application();
         $c = $app->getContainer();
         $repeatController = $c->query('RepeatController');
         $repeatController->cleanCalendar($id);
         $link = \OC::$server->getURLGenerator()->linkToRoute(App::$appname . '.page.index');
         $params = array('mode' => 'deleted', 'link' => $link, 'trans_type' => '', 'summary' => $calendar['displayname'], 'cal_user' => $user, 'cal_displayname' => $calendar['displayname']);
         ActivityData::logEventActivity($params, false, true);
         return $bDeleteCalendar;
     } else {
         return $bDeleteCalendar;
     }
 }