diff --git a/lib/NGCP/Panel/Controller/API/PbxDeviceConfigsItem.pm b/lib/NGCP/Panel/Controller/API/PbxDeviceConfigsItem.pm index 4efb1bb80a..8537a8a429 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDeviceConfigsItem.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDeviceConfigsItem.pm @@ -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; diff --git a/lib/NGCP/Panel/Controller/API/PbxDeviceFirmwaresItem.pm b/lib/NGCP/Panel/Controller/API/PbxDeviceFirmwaresItem.pm index ccae61507d..d588c81a00 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDeviceFirmwaresItem.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDeviceFirmwaresItem.pm @@ -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; diff --git a/lib/NGCP/Panel/Controller/API/PbxDeviceModelsItem.pm b/lib/NGCP/Panel/Controller/API/PbxDeviceModelsItem.pm index 2ed40cc9a9..0be87be68d 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDeviceModelsItem.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDeviceModelsItem.pm @@ -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; diff --git a/lib/NGCP/Panel/Controller/API/PbxDeviceProfiles.pm b/lib/NGCP/Panel/Controller/API/PbxDeviceProfiles.pm index daaa6326bd..805be42cf4 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDeviceProfiles.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDeviceProfiles.pm @@ -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/], }); diff --git a/lib/NGCP/Panel/Controller/API/PbxDeviceProfilesItem.pm b/lib/NGCP/Panel/Controller/API/PbxDeviceProfilesItem.pm index 339167042b..cc1e15f95a 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDeviceProfilesItem.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDeviceProfilesItem.pm @@ -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__