Ask for Reason when changing Port up/down Status, or VLAN

This commit is contained in:
Oliver Gorwits
2013-12-29 18:16:49 +00:00
parent d826a2e12b
commit cfb04e98d1
6 changed files with 53 additions and 2 deletions

View File

@@ -6,6 +6,7 @@
* Add device/node/vlan/port specific search from Navbar * Add device/node/vlan/port specific search from Navbar
* [#3] [#47] Device Neighbor Map can have max depth and VLAN filter * [#3] [#47] Device Neighbor Map can have max depth and VLAN filter
* [#31] get_community now supported * [#31] get_community now supported
* [#19] Ask for Reason when changing Port up/down Status, or VLAN
[ENHANCEMENTS] [ENHANCEMENTS]

View File

@@ -662,6 +662,26 @@ Set to false to disable the periodic AJAX check for completed entries in the
job queue for this user. Mainly useful for development to suppress noisy web job queue for this user. Mainly useful for development to suppress noisy web
frontend activity. frontend activity.
=head3 C<port_control_reasons>
Value: Hash of Strings. Default:
port_control_reasons:
address: 'Address Allocation Abuse'
copyright: 'Copyright Violation'
dos: 'Denial of Service'
bandwidth: 'Excessive Bandwidth'
polling: 'Excessive Polling of DNS/DHCP/SNMP'
noserv: 'Not In Service'
exploit: 'Remote Exploit Possible'
compromised: 'System Compromised'
other: 'Other'
resolved: 'Issue Resolved'
When a user has Port Control rights and shuts down a port, they are asked for
a reason. This configuration lists those reasons, and can be overridden to add
or remove any entries.
=head2 Backend Daemon =head2 Backend Daemon
=head3 C<workers> =head3 C<workers>

View File

@@ -37,9 +37,9 @@ ajax '/ajax/portcontrol' => require_role port_control => sub {
ip => param('device'), ip => param('device'),
port => param('port'), port => param('port'),
action => $a, action => $a,
reason => 'other',
username => session('logged_in_user'), username => session('logged_in_user'),
userip => request->remote_address, userip => request->remote_address,
reason => (param('reason') || 'other'),
log => param('log'), log => param('log'),
}); });
} }

View File

@@ -75,6 +75,8 @@ extra_web_plugins: []
# mibdirs defaults to contents of mibhome # mibdirs defaults to contents of mibhome
community: ['public'] community: ['public']
community_rw: ['private'] community_rw: ['private']
snmp_auth: []
get_community: ''
bulkwalk_off: false bulkwalk_off: false
bulkwalk_no: [] bulkwalk_no: []
bulkwalk_repeaters: 20 bulkwalk_repeaters: 20
@@ -122,6 +124,17 @@ portctl_nophones: false
portctl_vlans: false portctl_vlans: false
portctl_uplinks: false portctl_uplinks: false
check_userlog: true check_userlog: true
port_control_reasons:
address: 'Address Allocation Abuse'
copyright: 'Copyright Violation'
dos: 'Denial of Service'
bandwidth: 'Excessive Bandwidth'
polling: 'Excessive Polling of DNS/DHCP/SNMP'
noserv: 'Not In Service'
exploit: 'Remote Exploit Possible'
compromised: 'System Compromised'
other: 'Other'
resolved: 'Issue Resolved'
# -------------- # --------------
# BACKEND DAEMON # BACKEND DAEMON

View File

@@ -4,6 +4,7 @@ var nd_save_ok = false;
// user clicked or asked for port changes to be submitted via ajax // user clicked or asked for port changes to be submitted via ajax
function port_control (e) { function port_control (e) {
var td = $(e).closest('td'), var td = $(e).closest('td'),
reason = $('#nd_portlog-reason').val(),
logmessage = $('#nd_portlog-log').val(); logmessage = $('#nd_portlog-log').val();
$('#nd_portlog-log').val(''); $('#nd_portlog-log').val('');
@@ -23,7 +24,8 @@ function port_control (e) {
,field: td.data('field') ,field: td.data('field')
,action: td.data('action') ,action: td.data('action')
,value: td.text().trim() ,value: td.text().trim()
,log: logmessage, ,reason: reason
,log: logmessage
} }
,success: function() { ,success: function() {
toastr.info('Submitted change request'); toastr.info('Submitted change request');
@@ -119,6 +121,12 @@ $(document).ready(function() {
$('#nd_portlog').one('hidden', function() { $('#nd_portlog').one('hidden', function() {
port_control(clicked); // save port_control(clicked); // save
}); });
if ($(this).hasClass('icon-hand-up')) {
$('#nd_portlog-reason').val('resolved');
}
else {
$('#nd_portlog-reason').val('other');
}
$('#nd_portlog').modal('show'); $('#nd_portlog').modal('show');
}); });

View File

@@ -279,6 +279,15 @@
<div id="nd_portlog" class="nd_modal nd_deep-horizon modal hide fade" tabindex="-1" <div id="nd_portlog" class="nd_modal nd_deep-horizon modal hide fade" tabindex="-1"
role="dialog" aria-hidden="true"> role="dialog" aria-hidden="true">
<div class="modal-body"> <div class="modal-body">
<blockquote>
<ul><li><p>Please provide a reason for chainging the Port Configuration</p></li></ul>
</blockquote>
<select id="nd_portlog-reason" class="input-block-level" name="reason">
[% FOREACH pair IN settings.port_control_reasons.pairs %]
<option[% ' selected="selected"' IF pair.key == 'other' %] value="[% pair.key | html_entity %]">
[% pair.value | html_entity %]</option>
[% END %]
</select>
<textarea id="nd_portlog-log" class="input-block-level" rows="2" name="log" <textarea id="nd_portlog-log" class="input-block-level" rows="2" name="log"
placeholder="Enter a log message"></textarea> placeholder="Enter a log message"></textarea>
</div> </div>