MT#60710 add missing DELETE method for pbx endpoints

* enable DELETE method for:
  - /api/pbxdevicefirmwares/
  - /api/pbxdevicemodels/
  - /api/pbxdeviceprofiles/
* /api/pbxdeviceprofiles fix allowed_roles for 'subscriberadmin' to
  only allow GET method

Change-Id: I4ed8f591529e161aa08648c99093459128b55203
mr13.0
Kirill Solomko 8 months ago
parent 463969b2a8
commit f3bc8097e7

@ -12,7 +12,7 @@ require NGCP::Panel::Role::HTTPMethods;
require Catalyst::ActionRole::RequireSSL;
sub allowed_methods{
return [qw/GET OPTIONS HEAD PUT/];
return [qw/GET OPTIONS HEAD PUT DELETE/];
}
use parent qw/NGCP::Panel::Role::EntitiesItem NGCP::Panel::Role::API::PbxDeviceConfigs/;
@ -86,7 +86,6 @@ sub PUT :Allow {
return;
}
=pod
sub DELETE :Allow {
my ($self, $c, $id) = @_;
@ -103,7 +102,6 @@ sub DELETE :Allow {
}
return;
}
=cut
1;

@ -12,7 +12,7 @@ require NGCP::Panel::Role::HTTPMethods;
require Catalyst::ActionRole::RequireSSL;
sub allowed_methods{
return [qw/GET OPTIONS HEAD PUT/];
return [qw/GET OPTIONS HEAD PUT DELETE/];
}
use parent qw/NGCP::Panel::Role::EntitiesItem NGCP::Panel::Role::API::PbxDeviceFirmwares/;
@ -91,7 +91,6 @@ sub PUT :Allow {
return;
}
=pod
sub DELETE :Allow {
my ($self, $c, $id) = @_;
@ -108,7 +107,6 @@ sub DELETE :Allow {
}
return;
}
=cut
1;

@ -14,12 +14,13 @@ __PACKAGE__->set_config({
'Default' => [qw/admin reseller subscriberadmin subscriber/],
'PUT' => [qw/admin reseller/],
'PATCH' => [qw/admin reseller/],
'DELETE' => [qw/admin reseller/],
},
required_licenses => [qw/pbx device_provisioning/],
});
sub allowed_methods{
return [qw/GET OPTIONS HEAD PATCH PUT/];
return [qw/GET OPTIONS HEAD PATCH PUT DELETE/];
}
1;

@ -49,7 +49,10 @@ sub relation{
}
__PACKAGE__->set_config({
allowed_roles => [qw/admin reseller subscriberadmin/],
allowed_roles => {
'Default' => [qw/admin reseller subscriberadmin/],
'POST' => [qw/admin reseller/],
}
required_licenses => [qw/pbx device_provisioning/],
});

@ -15,7 +15,7 @@ require NGCP::Panel::Role::HTTPMethods;
require Catalyst::ActionRole::RequireSSL;
sub allowed_methods{
return [qw/GET OPTIONS HEAD PATCH PUT/];
return [qw/GET OPTIONS HEAD PATCH PUT DELETE/];
}
use parent qw/NGCP::Panel::Role::EntitiesItem NGCP::Panel::Role::API::PbxDeviceProfiles/;
@ -33,7 +33,12 @@ sub relation{
}
__PACKAGE__->set_config({
allowed_roles => [qw/admin reseller subscriberadmin/],
allowed_roles => {
'Default' => [qw/admin reseller subscriberadmin/],
'PUT' => [qw/admin reseller/],
'PATCH' => [qw/admin reseller/],
'DELETE' => [qw/admin reseller/],
},
required_licenses => [qw/pbx device_provisioning/],
});
@ -130,6 +135,23 @@ sub PUT :Allow {
return;
}
sub DELETE :Allow {
my ($self, $c, $id) = @_;
my $guard = $c->model('DB')->txn_scope_guard;
{
my $item = $self->item_by_id($c, $id);
last unless $self->resource_exists($c, pbxdeviceprofile => $item);
$item->delete;
$guard->commit;
$c->response->status(HTTP_NO_CONTENT);
$c->response->body(q());
}
return;
}
1;
__END__

Loading…
Cancel
Save