public function handleGet($get, $post, $files, $cookies) { if (Models\User::currentUser($cookies)->authorizationLevel < 5) { throw new \Exception('You are not authorized to view this page'); } /* Set up the page view */ $view = new Views\AdminCommentsView(); $view->checkpointId = intval(Models\Preferences::valueForModuleWithKey('CameraLife', 'checkpointcomments')); $view->checkpointDate = Models\Database::selectOne('logs', 'max(user_date)', 'id=' . $view->checkpointId); $view->showFromMe = isset($get['fromMe']) && $get['fromMe']; $view->showFromRegistered = isset($get['fromRegistered']) && $get['fromRegistered']; $view->showFromUnregistered = isset($get['fromUnregistered']) && $get['fromUnregistered']; if (!$view->showFromMe && !$view->showFromRegistered && !$view->showFromUnregistered) { $view->showFromMe = true; $view->showFromRegistered = true; $view->showFromUnregistered = true; } /* Query the comment logs */ $currentUser = Models\User::currentUser($cookies); $condition = "(0 "; $condition .= $view->showFromMe ? "OR username = '******' " : ''; $condition .= $view->showFromRegistered ? "OR (username LIKE '_%' AND username != '" . $currentUser->name . "')" : ''; $condition .= $view->showFromUnregistered ? "OR username = '' " : ''; $condition .= ") "; $condition .= " AND id > " . $view->checkpointId; $query = Models\Database::select('comments', '*', $condition); $commentRecords = array(); while ($record = $query->fetchAssoc()) { $commentRecords[] = $record; } $view->commentRecords = $commentRecords; $this->htmlHeader($cookies); $view->render(); $this->htmlFooter(); }
public function handleGet($get, $post, $files, $cookies) { if (Models\User::currentUser($cookies)->authorizationLevel < 5) { throw new \Exception('You are not authorized to view this page'); } /* Set up the page view */ $view = new Views\AdminLogsView(); $view->checkpointId = intval(Models\Preferences::valueForModuleWithKey('CameraLife', 'checkpointlogs')); $view->checkpointDate = Models\Database::selectOne('logs', 'max(user_date)', 'id=' . $view->checkpointId); $view->showFromMe = isset($get['fromMe']) && $get['fromMe']; $view->showFromRegistered = isset($get['fromRegistered']) && $get['fromRegistered']; $view->showFromUnregistered = isset($get['fromUnregistered']) && $get['fromUnregistered']; $view->showChangedPhotos = isset($get['changedPhotos']) && $get['changedPhotos']; $view->showChangedTags = isset($get['changedTags']) && $get['changedTags']; $view->showChangedUsers = isset($get['changedUsers']) && $get['changedUsers']; $view->showChangedPrefs = isset($get['changedPreferences']) && $get['changedPreferences']; if (!$view->showFromMe && !$view->showFromRegistered && !$view->showFromUnregistered) { $view->showFromMe = true; $view->showFromRegistered = true; $view->showFromUnregistered = true; } if (!$view->showChangedPhotos && !$view->showChangedTags && !$view->showChangedUsers && !$view->showChangedPrefs) { $view->showChangedPhotos = true; $view->showChangedTags = true; $view->showChangedUsers = true; $view->showChangedPrefs = true; } /* Query the audit logs */ $currentUser = Models\User::currentUser($cookies); $condition = "(0 "; $condition .= $view->showChangedPhotos ? "OR record_type = 'photo' " : ''; $condition .= $view->showChangedTags ? "OR record_type = 'album' " : ''; $condition .= $view->showChangedUsers ? "OR record_type = 'user' " : ''; $condition .= $view->showChangedPrefs ? "OR record_type = 'preference' " : ''; $condition .= ") AND (0 "; $condition .= $view->showFromMe ? "OR user_name = '" . $currentUser->name . "' " : ''; $condition .= $view->showFromRegistered ? "OR (user_name LIKE '_%' AND user_name != '" . $currentUser->name . "')" : ''; $condition .= $view->showFromUnregistered ? "OR user_name = '' " : ''; $condition .= ") "; $condition .= " AND logs.id > " . $view->checkpointId; $extra = "GROUP BY record_id, record_type, value_field ORDER BY maxid DESC"; $query = Models\Database::select('logs', 'record_type, record_id, value_field, MAX(logs.id) as maxid', $condition, $extra); $auditTrails = array(); while ($record = $query->fetchAssoc()) { $auditTrails[] = Models\AuditTrail::getAuditTrailWithID($record['maxid']); } $view->auditTrails = $auditTrails; $this->htmlHeader($cookies); $view->render(); $this->htmlFooter(); }
public function handleGet($get, $post, $files, $cookies) { if (Models\User::currentUser($cookies)->authorizationLevel < 5) { throw new \Exception('You are not authorized to view this page'); } ini_set('max_execution_time', 9000); chdir(constant('BASE_DIR')); $lastdone = isset($get['lastdone']) ? (int) $get['lastdone'] : 0; $starttime = isset($get['starttime']) ? (int) $get['starttime'] : time(); $numdone = isset($get['numdone']) ? (int) $get['numdone'] : 0; $phpself = self::getUrl(); /* Rescan */ if (!isset($get['lastdone'])) { Models\Folder::update(); } /* Set up the page view */ $this->htmlHeader($cookies); //TODO BREAKING MVC HERE BECAUSE OF INTREMENTAL RENDERING echo '<h2>Rendering thumbnails <small>To avoid a delay when viewing photos for the first time</small></h2>'; $total = Models\Database::selectOne('photos', 'count(*)'); $done = Models\Database::selectOne('photos', 'count(*)', "id <= {$lastdone}"); $todo = Models\Database::selectOne('photos', 'count(*)', "id > {$lastdone}"); $timeleft = ceil((time() - $starttime) * $todo / ($numdone + $done / 1000 + 1) / 60); echo "<p>Progress: " . number_format($done) . ' of ' . number_format($total) . " done"; echo " (about {$timeleft} minutes left)"; echo "</p>\n"; $percentage = $done / $total * 100; echo "<progress class=\"progress\" value=\"{$percentage}\" max=\"100\">{$percentage}%</progress>"; $next1000 = Models\Database::select('photos', 'id', "id > {$lastdone} AND status != 9", 'ORDER BY id LIMIT 500'); $fixed = 0; flush(); while (($next = $next1000->fetchAssoc()) && $fixed < 10) { $photo = Models\Photo::getPhotoWithID($next['id']); $redo = $photo->isCacheMissing(); if ($redo) { echo "<div>Updating #" . $next['id'] . "</div>\n"; $photo->generateThumbnail(); echo "<div>Updated #" . $next['id'] . "</div>\n"; flush(); $fixed++; $photo->destroy(); } $lastdone = $next['id']; } $numdone += $fixed; if ($todo > 0) { echo "<script language='javascript'>window.setTimeout('window.location=\"" . htmlspecialchars($phpself) . "?lastdone={$lastdone}&starttime={$starttime}&numdone={$numdone}\"',400)</script>\n"; echo "<p><a href=\"?lastdone={$lastdone}&starttime={$starttime}&numdone={$numdone}\">Click here to continue</a> if the Javascript redirect doesn't work.</p>\n"; } $this->htmlFooter(); }
public function handleGet($get, $post, $files, $cookies) { if (Models\User::currentUser($cookies)->authorizationLevel < 5) { throw new \Exception('You are not authorized to view this page'); } /* Set up the page view */ $view = new Views\AdminSecurityView(); $users = array(); $query = Models\Database::select('users', '*', '', 'ORDER by id'); while ($record = $query->fetchAssoc()) { $users[] = new Models\User($record['id']); } $view->users = $users; $policies = array(); $view->securityPolicies = $policies; $this->htmlHeader($cookies); $view->render(); $this->htmlFooter(); }
public function handleGet($get, $post, $files, $cookies) { if (Models\User::currentUser($cookies)->authorizationLevel < 5) { throw new \Exception('You are not authorized to view this page'); } /* Set up the page view */ $checkpointId = intval(Models\Preferences::valueForModuleWithKey('CameraLife', 'checkpointphotos')); $view = new Views\AdminPhotosView(); $view->isUsingHttps = isset($_SERVER['HTTPS']); $view->myUrl = $_SERVER['REQUEST_URI']; $query = Models\Database::select('photos', 'id', 'id>:0 AND status!=9', 'ORDER BY id LIMIT 200', null, array($checkpointId)); $view->photos = array(); while ($row = $query->fetchAssoc()) { $view->photos[] = Models\Photo::getPhotoWithID($row['id']); $view->lastReviewItem = $row['id']; } $done = Models\Database::selectOne('photos', 'count(id)', 'id<=:0 AND status!=9', null, null, array($checkpointId)); $view->reviewsDone = $done; $remaining = Models\Database::selectOne('photos', 'count(id)', 'id>:0 AND status!=9', null, null, array($checkpointId)); $view->reviewsRemaining = $remaining; $this->htmlHeader($cookies); $view->render(); $this->htmlFooter(); }