torrus: add new access rights, add SNMP community option, RT10574
authorlevinse <levinse>
Sun, 15 May 2011 01:43:40 +0000 (01:43 +0000)
committerlevinse <levinse>
Sun, 15 May 2011 01:43:40 +0000 (01:43 +0000)
FS/FS/AccessRight.pm
FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm
httemplate/elements/menu.html
httemplate/misc/nms-add_router.html
httemplate/misc/process/nms-add_iface.html
httemplate/misc/process/nms-add_router.html

index c3aeb2d..2f6f531 100644 (file)
@@ -311,6 +311,8 @@ tie my %rights, 'Tie::IxHash',
 
     { rightname=>'Broadband configuration' },
     { rightname=>'Broadband global configuration', global=>1 },
+    
+    { rightname=> 'Configure network monitoring', global=>1 },
 
     #{ rightname=>'Edit employees', global=>1, },
     #{ rightname=>'Edit employee groupss', global=>1, },
index 9df1975..bd016a1 100644 (file)
@@ -155,11 +155,14 @@ sub report {
 }
 
 sub add_router {
-  my($self, $ip) = @_;
+  my($self, $ip, $community) = @_;
+
+  $community = qq!<param name="snmp-community" value="$community"/>\n !
+    if length($community) > 1;
 
   my $newhost = 
     qq(  <host>\n).
-    qq(    <param name="snmp-host" value="$ip"/>\n).
+    qq(    <param name="snmp-host" value="$ip"/>\n).$community.
     qq(  </host>\n);
 
   my $ddx = $self->_torrus_loadddx;
index e28beb7..5e2e548 100644 (file)
@@ -638,7 +638,8 @@ if ( $conf->config('ticket_system') ) {
     ],
 }
 
-if ( $conf->config('network_monitoring_system') eq 'Torrus_Internal' ) {
+if ( $conf->config('network_monitoring_system') eq 'Torrus_Internal' &&
+  $curuser->access_right('Configure network monitoring') ) {
   $menu{'Network Main'} =
     [ $fsurl.'torrus/main', 'Network monitoring start page' ],
 }
index 35ef7bf..c41e619 100644 (file)
@@ -7,6 +7,13 @@ Router Hostname/IP
          )
 %>
 <BR>
+SNMP Community String (optional)
+<% include('/elements/input-text.html',
+                   'field' => 'community',
+         )
+%>
+<BR>
+<BR>
 <INPUT TYPE="submit" NAME="submit" ID="submit_nms-add_router" VALUE="Add Router">
 </FORM>
 
index 0d37ea2..5f51e5c 100644 (file)
@@ -5,7 +5,8 @@
 </BODY></HTML>
 <%init>
 
-# XXX: access rights
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configure network monitoring');
 
 my $host = $cgi->param('host'); 
 die 'invalid host' unless $host =~ /^[0-9.a-zA-Z\-]+$/;
index bc437d2..a77d897 100644 (file)
@@ -2,12 +2,16 @@
 </BODY></HTML>
 <%init>
 
-# XXX: access rights
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configure network monitoring');
 
 my $host = $cgi->param('host'); 
 die 'invalid host' unless $host =~ /^[0-9.a-zA-Z\-]+$/;
 
+my $community = $cgi->param('community'); 
+die 'invalid SNMP community string' unless $community =~ /^[0-9.a-zA-Z\-]*$/;
+
 my $nms = new FS::NetworkMonitoringSystem;
-$nms->add_router($host);
+$nms->add_router($host,$community);
 
 </%init>