/** * Sort out protected archives * * @param array $arrCalendars * * @return array */ protected function sortOutProtected($arrCalendars) { if (BE_USER_LOGGED_IN || !is_array($arrCalendars) || empty($arrCalendars)) { return $arrCalendars; } $this->import('FrontendUser', 'User'); $objCalendar = \CalendarModel::findMultipleByIds($arrCalendars); $arrCalendars = array(); if ($objCalendar !== null) { while ($objCalendar->next()) { if ($objCalendar->protected) { if (!FE_USER_LOGGED_IN) { continue; } $groups = deserialize($objCalendar->groups); if (!is_array($groups) || empty($groups) || count(array_intersect($groups, $this->User->groups)) < 1) { continue; } } $arrCalendars[] = $objCalendar->id; } } return $arrCalendars; }
/** * Return the IDs of the allowed calendars as array * * @return array */ public function getAllowedCalendars() { if ($this->User->isAdmin) { $objCalendar = CalendarModel::findAll(); } else { $objCalendar = CalendarModel::findMultipleByIds($this->User->calendars); } $return = array(); if ($objCalendar !== null) { while ($objCalendar->next()) { $return[$objCalendar->id] = $objCalendar->title; } } return $return; }