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

Reply via email to