/** * read permissions * * @access private * @param * @return */ private function readPermissions() { global $ilUser, $rbacsystem, $ilAccess; $this->editable = false; $this->visible = false; $this->importable = false; include_once './Services/Calendar/classes/class.ilCalendarShared.php'; $shared = ilCalendarShared::getSharedCalendarsForUser($ilUser->getId()); $cat = new ilCalendarCategory((int) $_GET['category_id']); switch ($cat->getType()) { case ilCalendarCategory::TYPE_USR: if ($cat->getObjId() == $ilUser->getId()) { $this->visible = true; $this->editable = true; $this->importable = true; } elseif (isset($shared[$cat->getCategoryID()])) { $this->visible = true; } break; case ilCalendarCategory::TYPE_GLOBAL: $this->importable = $this->editable = $rbacsystem->checkAccess('edit_event', ilCalendarSettings::_getInstance()->getCalendarSettingsId()); $this->visible = true; break; case ilCalendarCategory::TYPE_OBJ: $this->editable = false; $refs = ilObject::_getAllReferences($cat->getObjId()); foreach ($refs as $ref) { if ($ilAccess->checkAccess('read', '', $ref)) { $this->visible = true; } if ($ilAccess->checkAccess('edit_event', '', $ref)) { $this->importable = true; } } break; case ilCalendarCategory::TYPE_BOOK: case ilCalendarCategory::TYPE_CH: $this->editable = $ilUser->getId() == $cat->getCategoryID(); $this->visible = true; $this->importable = false; break; } }
/** * show inbox * * @access protected * @return */ protected function inbox() { global $ilCtrl; $this->tpl = new ilTemplate('tpl.inbox.html', true, true, 'Services/Calendar'); include_once './Services/Calendar/classes/class.ilCalendarInboxSharedTableGUI.php'; include_once './Services/Calendar/classes/class.ilCalendarShared.php'; $table = new ilCalendarInboxSharedTableGUI($this, 'inbox'); $table->setCalendars(ilCalendarShared::getSharedCalendarsForUser()); if ($table->parse()) { $this->tpl->setVariable('SHARED_CAL_TABLE', $table->getHTML()); } include_once './Services/Calendar/classes/class.ilCalendarChangedAppointmentsTableGUI.php'; $table_gui = new ilCalendarChangedAppointmentsTableGUI($this, 'inbox'); $schedule = new ilCalendarSchedule(new ilDate(time(), IL_CAL_UNIX), ilCalendarSchedule::TYPE_INBOX); $schedule->setEventsLimit($table_gui->getLimit()); $schedule->addSubitemCalendars(true); $schedule->calculate(); if (isset($_GET['changed'])) { $title = $this->lng->txt('cal_changed_events_header'); $events = $schedule->getChangedEvents(true); $ilCtrl->setParameter($this, 'changed', 1); } else { // type inbox will show upcoming events (today or later) $title = $this->lng->txt('cal_upcoming_events_header'); //$events = $schedule->getEvents(); $events = $schedule->getScheduledEvents(); } $table_gui->setTitle($title); $table_gui->setAppointments($events); $this->tpl->setVariable('CHANGED_TABLE', $table_gui->getHTML()); }