Restrict access to the admin pages using fine-grained permissions

This commit is contained in:
2011-12-20 01:44:05 +00:00
parent fcea8eec59
commit 4a81b0ce7b
6 changed files with 39 additions and 3 deletions

View File

@@ -2,6 +2,11 @@
$main = StatusBoard_Main::instance();
$request = $main->request();
$auth = $main->auth();
if ( ! $auth->isAuthenticated() || ! $auth->hasPermission(StatusBoard_Permission::PERM_UpdateIncidents)) {
throw new StatusBoard_Exception_NotAuthorised();
}
$service_id = $request->get('service', 'Sihnon_Exception_InvalidParameters');
$site_id = $request->get('site', 'Sihnon_Exception_InvalidParameters');
@@ -16,7 +21,7 @@ try {
$site = StatusBoard_Site::fromId($site_id);
$incident = StatusBoard_Incident::fromId($incident_id);
} catch (Sihnon_Exception_ResultCountMismatch $e) {
StatusBoard_Page::redirect('errors/404');
throw new StatusBoard_Exception_FileNotFound();
}
$statuses = $incident->statusChanges();

View File

@@ -2,13 +2,18 @@
$main = StatusBoard_Main::instance();
$request = $main->request();
$auth = $main->auth();
if ( ! $auth->isAuthenticated() || ! $auth->hasPermission(StatusBoard_Permission::PERM_UpdateStatusBoards)) {
throw new StatusBoard_Exception_NotAuthorised();
}
$service_id = $request->get('id', 'Sihnon_Exception_InvalidParameters');
$service = null;
try {
$service = StatusBoard_Service::fromId($service_id);
} catch (Sihnon_Exception_ResultCountMismatch $e) {
StatusBoard_Page::redirect('errors/404');
throw new StatusBoard_Exception_FileNotFound();
}
$sites = $service->sites();

View File

@@ -4,4 +4,9 @@ $main = StatusBoard_Main::instance();
$auth = $main->auth();
$config = $main->config();
if ( ! $auth->isAuthenticated() || ! $auth->hasPermission(StatusBoard_Permission::PERM_Administrator)) {
throw new StatusBoard_Exception_NotAuthorised();
}
?>

View File

@@ -2,6 +2,11 @@
$main = StatusBoard_Main::instance();
$request = $main->request();
$auth = $main->auth();
if ( ! $auth->isAuthenticated() || ! $auth->hasPermission(StatusBoard_Permission::PERM_UpdateStatusBoards)) {
throw new StatusBoard_Exception_NotAuthorised();
}
$service_id = $request->get('service', 'Sihnon_Exception_InvalidParameters');
$site_id = $request->get('id', 'Sihnon_Exception_InvalidParameters');
@@ -13,7 +18,7 @@ try {
$service = StatusBoard_Service::fromId($service_id);
$site = StatusBoard_Site::fromId($site_id);
} catch (Sihnon_Exception_ResultCountMismatch $e) {
StatusBoard_Page::redirect('errors/404');
throw new StatusBoard_Exception_FileNotFound();
}
$open_incidents = $site->openIncidents();