TT#153501 API: GET phonebookentries - fix subscriber access(422) to own phonebooks

* Roles subscriber and subscriberadmin use the user voip subscriber id as a phonebook context.

Change-Id: I5f119837b40169aa6d920774b4fc96551875dfc0
mr10.3
Oleksandr Duts 4 years ago
parent f4154b1dbc
commit 581aa090e7

@ -6,6 +6,7 @@ use Sipwise::Base;
use parent 'NGCP::Panel::Role::API';
use HTTP::Status qw(:constants);
use List::Util qw(none any);
sub resource_name{
return 'phonebookentries';
@ -87,6 +88,9 @@ sub check_owner_params {
$params //= $self->get_info_data($c);
# Checking for implicit subscriber - no params provided. subscriber_id can be set up here.
&_check_implicit_subscriber($c, $params);
my %owner_params =
map { $_ => $params->{$_} }
grep { exists $params->{$_} }
@ -196,5 +200,16 @@ sub get_subscriber_phonebook_rs {
return ($list_rs,$item_rs);
}
sub _check_implicit_subscriber {
my ($c, $params) = @_;
if (
(none {defined $params->{$_}} qw/reseller_id customer_id subscriber_id/) &&
(any {$c->user->roles eq $_} qw/subscriber subscriberadmin/)
) {
$params->{subscriber_id} = $c->user->voip_subscriber->id;
}
}
1;
# vim: set tabstop=4 expandtab:

Loading…
Cancel
Save