TT#104174 Add last_secret_key_modify readonly field on /api/mailtofaxsettings

Change-Id: I7ebd3b46e0c7e1cbce34e921d0703bcbbdd9f42d
mr9.2
Flaviu Mates 5 years ago
parent 551c8b39f9
commit 233be55b9f

@ -16,6 +16,12 @@ has_field 'secret_key' => (
required => 0,
);
has_field 'last_secret_key_modify' => (
type => '+NGCP::Panel::Field::DateTime',
label => 'The datetime (YYYY-MM-DD HH:mm:ss) of the secret key modification.',
required => 0,
);
has_field 'secret_key_renew' => (
type => 'Select',
options => [

@ -8,6 +8,7 @@ use parent 'NGCP::Panel::Role::API';
use boolean qw(true);
use Data::HAL qw();
use Data::HAL::Link qw();
use DateTime::Format::ISO8601;
use HTTP::Status qw(:constants);
use JSON::Types;
use NGCP::Panel::Utils::Subscriber;
@ -161,6 +162,15 @@ sub update_item {
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Invalid field 'acl'. Must be an array.");
return;
}
if ($resource->{secret_key} && (!$old_resource->{secret_key} || $old_resource->{secret_key} ne $resource->{secret_key})) {
$resource->{last_secret_key_modify} = NGCP::Panel::Utils::DateTime::current_local;
} elsif ($resource->{last_secret_key_modify} && ($old_resource->{last_secret_key_modify} ne $resource->{last_secret_key_modify})) {
#forbid changing modify time
$resource->{last_secret_key_modify} = $old_resource->{last_secret_key_modify};
} elsif (!$resource->{last_secret_key_modify}) {
#delete last_secret_key_modify to prevent automatic conversion to current time when inserting into DB
delete $resource->{last_secret_key_modify};
}
my %update_fields = %{ $resource };
delete $update_fields{secret_renew_notify};
@ -191,6 +201,10 @@ sub update_item {
sub post_process_hal_resource {
my ($self, $c, $item, $resource, $form) = @_;
delete $resource->{active} if ($c->user->roles eq 'subscriber' || $c->user->roles eq 'subscriberadmin');
my $dtf = $c->model('DB')->storage->datetime_parser;
$resource->{last_secret_key_modify} = defined $resource->{last_secret_key_modify} ?
$dtf->format_datetime(DateTime::Format::ISO8601->parse_datetime($resource->{last_secret_key_modify})):
undef;
return $resource;
}

Loading…
Cancel
Save