-
Notifications
You must be signed in to change notification settings - Fork 453
/
versions.php
59 lines (48 loc) · 1.54 KB
/
versions.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<?php
namespace Concrete\Controller\Dialog\Event;
use Concrete\Controller\Backend\UserInterface as BackendInterfaceController;
use Concrete\Core\Support\Facade\Facade;
use Core;
use Concrete\Core\Calendar\Calendar;
use Concrete\Core\Calendar\CalendarServiceProvider;
use Concrete\Core\Calendar\Event\EventService;
class Versions extends BackendInterfaceController
{
protected $viewPath = '/dialogs/event/versions';
/**
* @var EventService
*/
protected $eventService;
public function __construct()
{
parent::__construct();
$app = Facade::getFacadeApplication();
$this->eventService = $app->make(EventService::class);
$this->dateFormatter = $app->make(CalendarServiceProvider::class)->getDateFormatter();
}
public function view()
{
if ($this->canAccess()) {
$event = $this->eventService->getByID($_REQUEST['eventID']);
if (!$event) {
throw new \Exception(t('Invalid event.'));
}
$this->set('event', $event);
$this->set('dateFormatter', $this->dateFormatter);
} else {
die('Access Denied.');
}
}
protected function canAccess()
{
$event = $this->eventService->getByID($_REQUEST['eventID']);
if (is_object($event)) {
$calendar = $event->getCalendar();
if (is_object($calendar)) {
$cp = new \Permissions($calendar);
return $cp->canEditCalendarEvents();
}
}
return false;
}
}