function disable($slug, Request $request, Application $app) { if (!$this->build($slug, $request, $app)) { $app->abort(404, "Import does not exist."); } if (!$this->parameters['importurl']->getIsEnabled()) { die('NO'); // TODO } if ($request->request->get('disable') == 'yes' && $request->request->get('CSFRToken') == $app['websession']->getCSFRToken()) { $iRepository = new ImportURLRepository(); $iRepository->disable($this->parameters['importurl'], $app['currentUser']); $erb = new EventRepositoryBuilder(); $erb->setAfterNow(); $erb->setIncludeDeleted(false); $erb->setImportURL($this->parameters['importurl']); $eventRepository = new EventRepository(); foreach ($erb->fetchAll() as $event) { $eventRepository->delete($event, $app['currentUser']); } return $app->redirect("/importurl/" . $this->parameters['importurl']->getSlug()); } return $app['twig']->render('site/importurl/disable.html.twig', $this->parameters); }
function testIntegration1() { \TimeSource::mock(2014, 1, 1, 12, 0, 0); $user = new UserAccountModel(); $user->setEmail("*****@*****.**"); $user->setUsername("test"); $user->setPassword("password"); $userRepo = new UserAccountRepository(); $userRepo->create($user); $site = new SiteModel(); $site->setTitle("Test"); $site->setSlug("test"); $siteRepo = new SiteRepository(); $siteRepo->create($site, $user, array(), $this->getSiteQuotaUsedForTesting()); ## Create Event \TimeSource::mock(2014, 1, 1, 13, 0, 0); $event = new EventModel(); $event->setSummary("test"); $event->setDescription("test test"); $event->setStartAt(getUTCDateTime(2014, 9, 1, 1, 1, 1)); $event->setEndAt(getUTCDateTime(2014, 9, 1, 1, 1, 1)); $eventRepo = new EventRepository(); $eventRepo->create($event, $site, $user); ## Edit event \TimeSource::mock(2014, 1, 1, 14, 0, 0); $event = $eventRepo->loadBySlug($site, $event->getSlug()); $event->setDescription("testy 123"); $eventRepo->edit($event, $user); # delete event \TimeSource::mock(2014, 1, 1, 15, 0, 0); $eventRepo->delete($event, $user); ## Now save changed flags on these ..... $eventHistoryRepo = new EventHistoryRepository(); $stat = $this->app['db']->prepare("SELECT * FROM event_history"); $stat->execute(); while ($data = $stat->fetch()) { $eventHistory = new EventHistoryModel(); $eventHistory->setFromDataBaseRow($data); $eventHistoryRepo->ensureChangedFlagsAreSet($eventHistory); } ## Now load and check $historyRepo = new HistoryRepositoryBuilder(); $historyRepo->setSite($site); $historyRepo->setIncludeEventHistory(true); $histories = $historyRepo->fetchAll(); $this->assertEquals(3, count($histories)); #the delete $this->assertEquals(FALSE, $histories[0]->getSummaryChanged()); $this->assertEquals(false, $histories[0]->getDescriptionChanged()); $this->assertEquals(true, $histories[0]->getIsDeletedChanged()); #the edit $this->assertEquals(FALSE, $histories[1]->getSummaryChanged()); $this->assertEquals(true, $histories[1]->getDescriptionChanged()); $this->assertEquals(false, $histories[1]->getIsDeletedChanged()); #the create $this->assertEquals(true, $histories[2]->getSummaryChanged()); $this->assertEquals(true, $histories[2]->getDescriptionChanged()); $this->assertEquals(false, $histories[2]->getIsDeletedChanged()); ## Now load history at a certain point; this is to test rollback! $history = $eventHistoryRepo->loadByEventAndtimeStamp($event, getUTCDateTime(2014, 1, 1, 15, 0, 0)->getTimestamp()); $this->assertEquals("test", $history->getSummary()); $this->assertEquals("testy 123", $history->getDescription()); }
function index($siteid, $slug, Request $request, Application $app) { global $CONFIG; $this->build($siteid, $slug, $request, $app); $form = $app['form.factory']->create(new ActionForm()); if ('POST' == $request->getMethod()) { $form->bind($request); if ($form->isValid()) { $data = $form->getData(); $action = new ActionParser($data['action']); if ($action->getCommand() == 'addgroup') { $gr = new GroupRepository(); $group = $gr->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($group) { $gr->addEventToGroup($this->parameters['event'], $group, $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } } else { if ($action->getCommand() == 'removegroup') { $gr = new GroupRepository(); $group = $gr->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($group) { $gr->removeEventFromGroup($this->parameters['event'], $group, $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } } else { if ($action->getCommand() == 'maingroup') { $gr = new GroupRepository(); $group = $gr->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($group) { $gr->setMainGroupForEvent($group, $this->parameters['event'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } } else { if ($action->getCommand() == 'delete' && !$this->parameters['event']->getIsDeleted()) { $er = new EventRepository(); $er->delete($this->parameters['event'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } else { if ($action->getCommand() == 'undelete' && $this->parameters['event']->getIsDeleted()) { $this->parameters['event']->setIsDeleted(false); $er = new EventRepository(); $er->undelete($this->parameters['event'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } else { if ($action->getCommand() == 'cancel' && !$this->parameters['event']->getIsDeleted()) { $er = new EventRepository(); $er->cancel($this->parameters['event'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } else { if ($action->getCommand() == 'uncancel' && $this->parameters['event']->getIsCancelled()) { $er = new EventRepository(); $er->uncancel($this->parameters['event'], $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } else { if ($action->getCommand() == 'addcuratedlist') { $clr = new CuratedListRepository(); $curatedList = $clr->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($curatedList) { $clr->addEventtoCuratedList($this->parameters['event'], $curatedList, $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/curatedlist/' . $curatedList->getSlug()); } } else { if ($action->getCommand() == 'removecuratedlist') { $clr = new CuratedListRepository(); $curatedList = $clr->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($curatedList) { $clr->removeEventFromCuratedList($this->parameters['event'], $curatedList, $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/curatedlist/' . $curatedList->getSlug()); } } else { if ($action->getCommand() == 'isduplicateof') { $er = new EventRepository(); $originalEvent = $er->loadBySlug($this->parameters['site'], $action->getParam(0)); if ($originalEvent && $originalEvent->getId() != $this->parameters['event']->getId()) { $er->markDuplicate($this->parameters['event'], $originalEvent, $app['currentUser']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } } else { if ($action->getCommand() == 'isnotduplicate') { $er = new EventRepository(); $eventEditMetaData = new EventEditMetaDataModel(); $eventEditMetaData->setUserAccount($app['currentUser']); $eventEditMetaData->setFromRequest($request); $er->markNotDuplicateWithMetaData($this->parameters['event'], $eventEditMetaData); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/' . $this->parameters['event']->getSlug()); } else { if ($action->getCommand() == 'purge' && $CONFIG->sysAdminExtraPurgeEventPassword && $CONFIG->sysAdminExtraPurgeEventPassword == $action->getParam(0)) { $er = new EventRepository(); $er->purge($this->parameters['event']); return $app->redirect('/sysadmin/site/' . $this->parameters['site']->getId() . '/event/'); } } } } } } } } } } } } } } $groupRB = new GroupRepositoryBuilder(); $groupRB->setEvent($this->parameters['event']); $this->parameters['groups'] = $groupRB->fetchAll(); $this->parameters['form'] = $form->createView(); return $app['twig']->render('sysadmin/event/index.html.twig', $this->parameters); }
public function deleteEventsNotSeenAfterRun() { $count = 0; $eventRepo = new EventRepository(); $erb = new EventRepositoryBuilder(); $erb->setImportURL($this->importURL); $erb->setIncludeDeleted(false); $erb->setAfterNow(); foreach ($erb->fetchAll() as $event) { if (!in_array($event->getId(), $this->eventsSeenIDs)) { $eventRepo->delete($event); ++$count; } } return $count; }