diff options
author | levinse <levinse> | 2011-05-15 01:43:40 +0000 |
---|---|---|
committer | levinse <levinse> | 2011-05-15 01:43:40 +0000 |
commit | b412c2545d8862278343adc1ef17cc297e11ad6d (patch) | |
tree | a74b41e8844a4ef3ff0e26d9c7204048c70b7e8b | |
parent | be40a9fa3750374b32f2aa31e8807433c05d7817 (diff) |
torrus: add new access rights, add SNMP community option, RT10574
-rw-r--r-- | FS/FS/AccessRight.pm | 2 | ||||
-rw-r--r-- | FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm | 7 | ||||
-rw-r--r-- | httemplate/elements/menu.html | 3 | ||||
-rw-r--r-- | httemplate/misc/nms-add_router.html | 7 | ||||
-rw-r--r-- | httemplate/misc/process/nms-add_iface.html | 3 | ||||
-rw-r--r-- | httemplate/misc/process/nms-add_router.html | 8 |
6 files changed, 24 insertions, 6 deletions
diff --git a/FS/FS/AccessRight.pm b/FS/FS/AccessRight.pm index c3aeb2dcd..2f6f53101 100644 --- a/FS/FS/AccessRight.pm +++ b/FS/FS/AccessRight.pm @@ -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, }, diff --git a/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm b/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm index 9df19755e..bd016a123 100644 --- a/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm +++ b/FS/FS/NetworkMonitoringSystem/Torrus_Internal.pm @@ -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; diff --git a/httemplate/elements/menu.html b/httemplate/elements/menu.html index e28beb760..5e2e54835 100644 --- a/httemplate/elements/menu.html +++ b/httemplate/elements/menu.html @@ -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' ], } diff --git a/httemplate/misc/nms-add_router.html b/httemplate/misc/nms-add_router.html index 35ef7bf72..c41e61977 100644 --- a/httemplate/misc/nms-add_router.html +++ b/httemplate/misc/nms-add_router.html @@ -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> diff --git a/httemplate/misc/process/nms-add_iface.html b/httemplate/misc/process/nms-add_iface.html index 0d37ea233..5f51e5ce1 100644 --- a/httemplate/misc/process/nms-add_iface.html +++ b/httemplate/misc/process/nms-add_iface.html @@ -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\-]+$/; diff --git a/httemplate/misc/process/nms-add_router.html b/httemplate/misc/process/nms-add_router.html index bc437d2b3..a77d897d2 100644 --- a/httemplate/misc/process/nms-add_router.html +++ b/httemplate/misc/process/nms-add_router.html @@ -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> |