Title: [opsview] [12717] Moved /admin/servicegroup/services out because of ACL restrictions in
- Revision
- 12717
- Author
- tvoon
- Date
- 2013-06-28 13:45:23 +0100 (Fri, 28 Jun 2013)
Log Message
Moved /admin/servicegroup/services out because of ACL restrictions in
/admin pages. Now in /public/services_by_servicegroup with customer ACL
Modified Paths
Added Paths
Removed Paths
Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Servicegroup.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Servicegroup.pm 2013-06-28 12:22:18 UTC (rev 12716)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Admin/Servicegroup.pm 2013-06-28 12:45:23 UTC (rev 12717)
@@ -89,23 +89,5 @@
$c->res->body( 'OK' );
}
-sub services : Local {
- my ( $self, $c, $id ) = @_;
- my $proxied_object;
- if ( $_ = $c->req->param("host") ) {
- unless ( $c->user->can_configurehost($_) ) {
- $c->forward( "/access_denied" );
- }
- $proxied_object = Opsview::Host->retrieve($_);
- $c->stash->{via} = "host";
- }
- elsif ( $_ = $c->req->param("hosttemplate") ) {
- $proxied_object = Opsview::Hosttemplate->retrieve($_);
- $c->stash->{via} = "hosttemplate";
- }
- $c->stash( proxied_object => $proxied_object );
- $c->stash( wrapper => "wrappers/blank" );
-}
-
__PACKAGE__->meta->make_immutable;
1;
Modified: trunk/opsview-web/lib/Opsview/Web/Controller/Public.pm
===================================================================
--- trunk/opsview-web/lib/Opsview/Web/Controller/Public.pm 2013-06-28 12:22:18 UTC (rev 12716)
+++ trunk/opsview-web/lib/Opsview/Web/Controller/Public.pm 2013-06-28 12:45:23 UTC (rev 12717)
@@ -205,4 +205,33 @@
$c->stash( central_servicecheck_configuration => 1 );
}
+sub services_by_servicegroup : Local : Does(ACL) : AllowedRole(CONFIGUREVIEW) :
+ AllowedRole(CONFIGUREHOSTS) : ACLDetachTo(/access_denied) {
+ my ( $self, $c, $sgid ) = @_;
+
+ $c->stash( wrapper => "wrappers/blank" );
+
+ my $servicegroup = $c->model("OpsviewSchema::Servicegroups")->find($sgid);
+ unless ($servicegroup) {
+ $c->res->body( "Service group not found for $sgid" );
+ $c->detach;
+ }
+
+ $c->stash( object => $servicegroup );
+
+ my $proxied_object;
+ if ( $_ = $c->req->param("host") ) {
+ unless ( $c->user->can_configurehost($_) ) {
+ $c->forward( "/access_denied" );
+ }
+ $proxied_object = Opsview::Host->retrieve($_);
+ $c->stash->{via} = "host";
+ }
+ elsif ( $_ = $c->req->param("hosttemplate") ) {
+ $proxied_object = Opsview::Hosttemplate->retrieve($_);
+ $c->stash->{via} = "hosttemplate";
+ }
+ $c->stash( proxied_object => $proxied_object );
+}
+
1;
Modified: trunk/opsview-web/root/admin/service_options
===================================================================
--- trunk/opsview-web/root/admin/service_options 2013-06-28 12:22:18 UTC (rev 12716)
+++ trunk/opsview-web/root/admin/service_options 2013-06-28 12:45:23 UTC (rev 12717)
@@ -2,7 +2,7 @@
PROCESS "servicecheck_buttons";
-detail_uri = c.uri_for("/admin/servicegroup/services/").path;
+detail_uri = c.uri_for("/public/services_by_servicegroup/").path;
%]
<script>
Deleted: trunk/opsview-web/root/admin/servicegroup/services
===================================================================
--- trunk/opsview-web/root/admin/servicegroup/services 2013-06-28 12:22:18 UTC (rev 12716)
+++ trunk/opsview-web/root/admin/servicegroup/services 2013-06-28 12:45:23 UTC (rev 12717)
@@ -1,7 +0,0 @@
-[%
-
-PROCESS "servicecheck_buttons";
-
-print_services_options( object.servicechecks_by_object(proxied_object) );
-
-%]
Added: trunk/opsview-web/root/public/services_by_servicegroup
===================================================================
--- trunk/opsview-web/root/public/services_by_servicegroup (rev 0)
+++ trunk/opsview-web/root/public/services_by_servicegroup 2013-06-28 12:45:23 UTC (rev 12717)
@@ -0,0 +1,7 @@
+[%
+
+PROCESS "servicecheck_buttons";
+
+print_services_options( object.servicechecks_by_object(proxied_object) );
+
+%]
Modified: trunk/opsview-web/t/720acl.t
===================================================================
--- trunk/opsview-web/t/720acl.t 2013-06-28 12:22:18 UTC (rev 12716)
+++ trunk/opsview-web/t/720acl.t 2013-06-28 12:45:23 UTC (rev 12717)
@@ -311,10 +311,11 @@
isnt( $admin->content, $data, "More data for admin user as more hosts listed"
);
-$admin->get_ok( "/admin/servicegroup/services/1?host=12" );
-$somehosts->get_ok( "/admin/servicegroup/services/1?host=12" );
-$somehosts->get( "/admin/servicegroup/services/1?host=14" );
-is( $somehosts->status, 403, "Forbidden for this host" );
+$admin->get_ok( "/public/services_by_servicegroup/1?host=12" );
+$somehosts->get_ok( "/public/services_by_servicegroup/1?host=12" );
+$somehosts->get( "/public/services_by_servicegroup/1?host=14" );
+is( $somehosts->status, 403, "Forbidden for this host" )
+ || diag( $somehosts->content );
$somehosts->get_ok( "/admin/snmpwalk/poll?hostid=12" );
is( $somehosts->content, '{"ResultSet":{"state":"start"}}' );
_______________________________________________
Opsview-checkins mailing list
Opsview-checkins@lists.opsview.org
http://lists.opsview.org/lists/listinfo/opsview-checkins