diff --git a/Netdisco/lib/App/Netdisco/Web/AdminTask.pm b/Netdisco/lib/App/Netdisco/Web/AdminTask.pm index 142fdd04..fac92d12 100644 --- a/Netdisco/lib/App/Netdisco/Web/AdminTask.pm +++ b/Netdisco/lib/App/Netdisco/Web/AdminTask.pm @@ -67,6 +67,13 @@ ajax '/ajax/control/admin/delete' => require_role admin => sub { if ! $device or $device->addr eq '0.0.0.0'; schema('netdisco')->txn_do(sub { + schema('netdisco')->resultset('UserLog')->create({ + username => session('logged_in_user'), + userip => request->remote_address, + event => "Delete device ". $device->addr, + details => param('log'), + }); + my $device = schema('netdisco')->resultset('Device') ->search({ip => param('device')}); diff --git a/Netdisco/lib/App/Netdisco/Web/PortControl.pm b/Netdisco/lib/App/Netdisco/Web/PortControl.pm index 3e3c0242..af81153f 100644 --- a/Netdisco/lib/App/Netdisco/Web/PortControl.pm +++ b/Netdisco/lib/App/Netdisco/Web/PortControl.pm @@ -30,15 +30,33 @@ ajax '/ajax/portcontrol' => require_role port_control => sub { ? (param('action') ."-other") : param('value')); - schema('netdisco')->resultset('Admin')->create({ - device => param('device'), - port => param('port'), - action => $action, - subaction => $subaction, - status => 'queued', - username => session('logged_in_user'), - userip => request->remote_address, - log => $log, + schema('netdisco')->txn_do(sub { + if (param('port')) { + my $a = "$action $subaction"; + $a =~ s/-other$//; + $a =~ s/^portcontrol/port/; + + schema('netdisco')->resultset('DevicePortLog')->create({ + ip => param('device'), + port => param('port'), + action => $a, + reason => 'other', + username => session('logged_in_user'), + userip => request->remote_address, + log => param('log'), + }); + } + + schema('netdisco')->resultset('Admin')->create({ + device => param('device'), + port => param('port'), + action => $action, + subaction => $subaction, + status => 'queued', + username => session('logged_in_user'), + userip => request->remote_address, + log => $log, + }); }); content_type('application/json');