TT#34567 Fix incorrect DBIC find using

Change-Id: Iab0dcec802ffd6c43259d9962d962b962068ab89
(cherry picked from commit 5c2dab378e)
changes/82/20282/1
Irina Peshinskaya 7 years ago
parent 95a8d9c6de
commit 3c815a76da

@ -5,31 +5,22 @@ use Sipwise::Base;
use parent 'NGCP::Panel::Role::API';
no strict 'refs';
use boolean qw(true);
use Data::HAL qw();
use Data::HAL::Link qw();
use HTTP::Status qw(:constants);
sub resource_name{
return 'phonebookentries';
}
sub dispatch_path{
return '/api/phonebookentries/';
}
sub relation{
return 'http://purl.org/sipwise/ngcp-api/#rel-phonebookentries';
}
sub _item_rs {
my ($self, $c) = @_;
my($owner,$type,$parameter,$value) = $self->check_owner_params($c);
return unless $owner;
my $method = 'get_'.$type.'_phonebook_rs';
my ($list_rs,$item_rs) = &$method($c, $value, $type);
my ($list_rs,$item_rs);
{
no strict 'refs';
($list_rs,$item_rs) = &$method($c, $value, $type);
}
return $list_rs;
}
@ -138,12 +129,12 @@ sub check_owner_params {
if ($c->user->roles eq "admin") {
$owner = $schema->resultset('contracts')->find($value);
} elsif ($c->user->roles eq "reseller") {
$owner = $schema->resultset('contracts')->find({
id => $value,
$owner = $schema->resultset('contracts')->search_rs({
'me.id' => $value,
'contact.reseller_id' => $c->user->reseller_id,
},{
join => 'contact',
});
})->first;
} elsif ($c->user->roles eq 'subscriberadmin' &&
$c->user->voip_subscriber->contract_id == $value) {
$owner = $schema->resultset('contracts')->find({ id => $value });
@ -153,12 +144,12 @@ sub check_owner_params {
if ($c->user->roles eq "admin") {
$owner = $schema->resultset('voip_subscribers')->find($value);
} elsif ($c->user->roles eq "reseller") {
$owner = $schema->resultset('voip_subscribers')->find({
id => $value,
$owner = $schema->resultset('voip_subscribers')->search_rs({
'me.id' => $value,
'contact.reseller_id' => $c->user->reseller_id,
},{
join => { 'contract' => 'contact' },
});
})->first;
} elsif (($c->user->roles eq 'subscriberadmin' ||
$c->user->roles eq "subscriber") &&
$c->user->voip_subscriber->id == $value) {
@ -166,7 +157,7 @@ sub check_owner_params {
}
}
unless($owner) {
unless ($owner) {
$c->log->error("Unknown $parameter value '$value'");
$self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Unknown $parameter value '$value'");
return;

Loading…
Cancel
Save