Пример #1
0
 function Grid()
 {
     $db =& $this->db;
     $response = new ResponseManager();
     $type = Kit::GetParam('filter_type', _POST, _WORD);
     $fromDt = Kit::GetParam('filter_fromdt', _POST, _STRING);
     setSession('sessions', 'Filter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off'));
     setSession('sessions', 'filter_type', $type);
     setSession('sessions', 'filter_fromdt', $fromDt);
     $SQL = "SELECT session.userID, user.UserName,  IsExpired, LastPage,  session.LastAccessed,  RemoteAddr,  UserAgent ";
     $SQL .= "FROM `session` LEFT OUTER JOIN user ON user.userID = session.userID ";
     $SQL .= "WHERE 1 = 1 ";
     if ($fromDt != '') {
         // From Date is the Calendar Formatted DateTime in ISO format
         $SQL .= sprintf(" AND session.LastAccessed < '%s' ", DateManager::getMidnightSystemDate(DateManager::getTimestampFromString($fromDt)));
     }
     if ($type == "active") {
         $SQL .= " AND IsExpired = 0 ";
     }
     if ($type == "expired") {
         $SQL .= " AND IsExpired = 1 ";
     }
     if ($type == "guest") {
         $SQL .= " AND session.userID IS NULL ";
     }
     // Load results into an array
     $log = $db->GetArray($SQL);
     Debug::LogEntry('audit', $SQL);
     if (!is_array($log)) {
         trigger_error($db->error());
         trigger_error(__('Error getting the log'), E_USER_ERROR);
     }
     $cols = array(array('name' => 'lastaccessed', 'title' => __('Last Accessed')), array('name' => 'isexpired', 'title' => __('Active'), 'icons' => true), array('name' => 'username', 'title' => __('User Name')), array('name' => 'lastpage', 'title' => __('Last Page')), array('name' => 'ip', 'title' => __('IP Address')), array('name' => 'browser', 'title' => __('Browser')));
     Theme::Set('table_cols', $cols);
     $rows = array();
     foreach ($log as $row) {
         $row['userid'] = Kit::ValidateParam($row['userID'], _INT);
         $row['username'] = Kit::ValidateParam($row['UserName'], _STRING);
         $row['isexpired'] = Kit::ValidateParam($row['IsExpired'], _INT) == 1 ? 0 : 1;
         $row['lastpage'] = Kit::ValidateParam($row['LastPage'], _STRING);
         $row['lastaccessed'] = DateManager::getLocalDate(strtotime(Kit::ValidateParam($row['LastAccessed'], _STRING)));
         $row['ip'] = Kit::ValidateParam($row['RemoteAddr'], _STRING);
         $row['browser'] = Kit::ValidateParam($row['UserAgent'], _STRING);
         // Edit
         $row['buttons'][] = array('id' => 'sessions_button_logout', 'url' => 'index.php?p=sessions&q=ConfirmLogout&userid=' . $row['userid'], 'text' => __('Logout'));
         $rows[] = $row;
     }
     Theme::Set('table_rows', $rows);
     $response->SetGridResponse(Theme::RenderReturn('table_render'));
     $response->Respond();
 }
Пример #2
0
 public function BandwidthGrid()
 {
     $fromDt = DateManager::getTimestampFromString(Kit::GetParam('fromdt', _POST, _STRING));
     $toDt = DateManager::getTimestampFromString(Kit::GetParam('todt', _POST, _STRING));
     // Get an array of display id this user has access to.
     $displays = $this->user->DisplayList();
     $displayIds = array();
     foreach ($displays as $display) {
         $displayIds[] = $display['displayid'];
     }
     if (count($displayIds) <= 0) {
         trigger_error(__('No displays with View permissions'), E_USER_ERROR);
     }
     // Get some data for a bandwidth chart
     try {
         $dbh = PDOConnect::init();
         $displayId = Kit::GetParam('displayid', _POST, _INT);
         $params = array('month' => $fromDt, 'month2' => $toDt);
         $SQL = 'SELECT display.display, IFNULL(SUM(Size), 0) AS size ';
         if ($displayId != 0) {
             $SQL .= ', bandwidthtype.name AS type ';
         }
         $SQL .= ' FROM `bandwidth`
                 INNER JOIN `display`
                 ON display.displayid = bandwidth.displayid';
         if ($displayId != 0) {
             $SQL .= '
                     INNER JOIN bandwidthtype
                     ON bandwidthtype.bandwidthtypeid = bandwidth.type
                 ';
         }
         $SQL .= '  WHERE month > :month 
                 AND month < :month2
                 AND display.displayId IN (' . implode(',', $displayIds) . ') ';
         if ($displayId != 0) {
             $SQL .= ' AND display.displayid = :displayid ';
             $params['displayid'] = $displayId;
         }
         $SQL .= 'GROUP BY display.display ';
         if ($displayId != 0) {
             $SQL .= ' , bandwidthtype.name ';
         }
         $SQL .= 'ORDER BY display.display';
         //Debug::LogEntry('audit', $SQL . '. Params = ' . var_export($params, true), get_class(), __FUNCTION__);
         $sth = $dbh->prepare($SQL);
         $sth->execute($params);
         // Get the results
         $results = $sth->fetchAll();
         $maxSize = 0;
         foreach ($results as $library) {
             $maxSize = $library['size'] > $maxSize ? $library['size'] : $maxSize;
         }
         // Decide what our units are going to be, based on the size
         $base = floor(log($maxSize) / log(1024));
         $output = array();
         foreach ($results as $row) {
             // label depends whether we are filtered by display
             if ($displayId != 0) {
                 $label = $row['type'];
             } else {
                 $label = $row['display'];
             }
             $output[] = array('label' => $label, 'value' => round((double) $row['size'] / pow(1024, $base), 2));
         }
         // Set the data
         Theme::Set('bandwidthWidget', json_encode($output));
         // Set up some suffixes
         $suffixes = array('bytes', 'k', 'M', 'G', 'T');
         Theme::Set('bandwidthWidgetUnits', isset($suffixes[$base]) ? $suffixes[$base] : '');
         $output = Theme::RenderReturn('stats_page_bandwidth');
         $response = new ResponseManager();
         $response->SetGridResponse($output);
         $response->Respond();
     } catch (Exception $e) {
         Debug::LogEntry('error', $e->getMessage());
         // Show the error in place of the bandwidth chart
         Theme::Set('widget-error', 'Unable to get widget details');
     }
 }
Пример #3
0
 /**
  * Edits an event
  * @return 
  */
 public function EditEvent()
 {
     // Check the token
     if (!Kit::CheckToken(Kit::GetParam('token_id', _POST, _STRING))) {
         trigger_error(__('Sorry the form has expired. Please refresh.'), E_USER_ERROR);
     }
     $db =& $this->db;
     $user =& $this->user;
     $response = new ResponseManager();
     $eventId = Kit::GetParam('EventID', _POST, _INT, 0);
     $campaignId = Kit::GetParam('CampaignID', _POST, _INT, 0);
     $fromDT = Kit::GetParam('starttime', _POST, _STRING);
     $toDT = Kit::GetParam('endtime', _POST, _STRING);
     $displayGroupIDs = Kit::GetParam('DisplayGroupIDs', _POST, _ARRAY);
     $isPriority = Kit::GetParam('is_priority', _POST, _CHECKBOX);
     $repeatType = Kit::GetParam('rec_type', _POST, _STRING);
     $repeatInterval = Kit::GetParam('rec_detail', _POST, _INT);
     $repeatToDt = Kit::GetParam('rec_range', _POST, _STRING);
     $displayOrder = Kit::GetParam('DisplayOrder', _POST, _INT);
     $isNextButton = Kit::GetParam('next', _GET, _BOOL, false);
     // Convert our ISO strings
     $fromDT = DateManager::getTimestampFromString($fromDT);
     $toDT = DateManager::getTimestampFromString($toDT);
     if ($repeatToDt != '') {
         $repeatToDt = DateManager::getTimestampFromString($repeatToDt);
     }
     Debug::Audit('Times received are: FromDt=' . $fromDT . '. ToDt=' . $toDT . '. RepeatToDt=' . $repeatToDt);
     // Validate layout
     if ($campaignId == 0) {
         trigger_error(__("No layout selected"), E_USER_ERROR);
     }
     // check that at least one display has been selected
     if ($displayGroupIDs == '') {
         trigger_error(__("No displays selected"), E_USER_ERROR);
     }
     // validate the dates
     if ($toDT < $fromDT) {
         trigger_error(__('Can not have an end time earlier than your start time'), E_USER_ERROR);
     }
     // Check recurrence dT is in the future or empty
     if ($repeatToDt != '' && $repeatToDt < time() - 86400) {
         trigger_error(__("Your repeat until date is in the past. Cannot schedule events to repeat in to the past"), E_USER_ERROR);
     }
     // Ready to do the edit
     $scheduleObject = new Schedule($db);
     if (!$scheduleObject->Edit($eventId, $displayGroupIDs, $fromDT, $toDT, $campaignId, $repeatType, $repeatInterval, $repeatToDt, $isPriority, $this->user->userid, $displayOrder)) {
         trigger_error($scheduleObject->GetErrorMessage(), E_USER_ERROR);
     }
     $response->SetFormSubmitResponse(__("The Event has been Modified."));
     $response->callBack = 'CallGenerateCalendar';
     $response->Respond();
 }
Пример #4
0
 function Grid()
 {
     $db =& $this->db;
     $user =& $this->user;
     $response = new ResponseManager();
     $type = Kit::GetParam('filter_type', _REQUEST, _INT, 0);
     $function = Kit::GetParam('filter_function', _REQUEST, _STRING);
     $page = Kit::GetParam('filter_page', _REQUEST, _STRING);
     $fromdt = Kit::GetParam('filter_fromdt', _REQUEST, _STRING);
     $displayid = Kit::GetParam('filter_display', _REQUEST, _INT);
     $seconds = Kit::GetParam('filter_seconds', _POST, _INT, 120);
     $filter_intervalTypeId = Kit::GetParam('filter_intervalTypeId', _POST, _INT, 1);
     setSession('log', 'Filter', Kit::GetParam('XiboFilterPinned', _REQUEST, _CHECKBOX, 'off'));
     setSession('log', 'filter_type', $type);
     setSession('log', 'filter_function', $function);
     setSession('log', 'filter_page', $page);
     setSession('log', 'filter_fromdt', $fromdt);
     setSession('log', 'filter_display', $displayid);
     setSession('log', 'filter_seconds', $seconds);
     setSession('log', 'filter_intervalTypeId', $filter_intervalTypeId);
     //get the dates and times
     if ($fromdt == '') {
         $starttime_timestamp = time();
     } else {
         $start_date = DateManager::getTimestampFromString($fromdt);
         $starttime_timestamp = strtotime($start_date[1] . "/" . $start_date[0] . "/" . $start_date[2] . ' ' . date("H", time()) . ":" . date("i", time()) . ':59');
     }
     $todt = date("Y-m-d H:i:s", $starttime_timestamp);
     $fromdt = date("Y-m-d H:i:s", $starttime_timestamp - $seconds * $filter_intervalTypeId);
     $SQL = "";
     $SQL .= "SELECT logid, logdate, page, function, message, display.display FROM log LEFT OUTER JOIN display ON display.displayid = log.displayid ";
     $SQL .= sprintf(" WHERE  logdate > '%s' AND logdate <= '%s' ", $fromdt, $todt);
     if ($type != 0) {
         $SQL .= sprintf("AND type = '%s' ", $type == 1 ? 'error' : 'audit');
     }
     if ($page != "") {
         $SQL .= sprintf("AND page = '%s' ", $db->escape_string($page));
     }
     if ($function != "") {
         $SQL .= sprintf("AND function = '%s' ", $db->escape_string($function));
     }
     if ($displayid != 0) {
         $SQL .= sprintf("AND display.displayID = %d ", $displayid);
     }
     $SQL .= " ORDER BY logid ";
     // Load results into an array
     $log = $db->GetArray($SQL);
     if (!is_array($log)) {
         trigger_error($db->error());
         trigger_error(__('Error getting the log'), E_USER_ERROR);
     }
     $cols = array(array('name' => 'logid', 'title' => __('ID')), array('name' => 'logdate', 'title' => __('Date')), array('name' => 'display', 'title' => __('Display')), array('name' => 'page', 'title' => __('Page')), array('name' => 'function', 'title' => __('Function')), array('name' => 'message', 'title' => __('Message')));
     Theme::Set('table_cols', $cols);
     $rows = array();
     foreach ($log as $row) {
         $row['logid'] = Kit::ValidateParam($row['logid'], _INT);
         $row['logdate'] = DateManager::getLocalDate(strtotime(Kit::ValidateParam($row['logdate'], _STRING)), 'y-m-d h:i:s');
         $row['display'] = Kit::ValidateParam($row['display'], _STRING) == '' ? __('CMS') : Kit::ValidateParam($row['display'], _STRING);
         $row['page'] = Kit::ValidateParam($row['page'], _STRING);
         $row['function'] = Kit::ValidateParam($row['function'], _STRING);
         $row['message'] = nl2br(htmlspecialchars($row['message']));
         $rows[] = $row;
     }
     Theme::Set('table_rows', $rows);
     $output = Theme::RenderReturn('table_render');
     $response->initialSortOrder = 2;
     $response->initialSortColumn = 1;
     $response->pageSize = 20;
     $response->SetGridResponse($output);
     $response->Respond();
 }