From 4c1a9d9c11ac6e385200083c358d92ee9cf052be Mon Sep 17 00:00:00 2001 From: Kirill Solomko Date: Wed, 23 Nov 2022 14:45:21 +0100 Subject: [PATCH] MT#56029 /api/cfbnumbersets subscriberadmin role change * subscriberadmin is now able to fetch cfbnumbersets of other subsribers that belong to the customer Change-Id: Ib92c161f320257ba2d6614e10d9eaf03247e7014 --- lib/NGCP/Panel/Role/API/CFBNumberSets.pm | 27 +++++++++++++----------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/lib/NGCP/Panel/Role/API/CFBNumberSets.pm b/lib/NGCP/Panel/Role/API/CFBNumberSets.pm index cb39c020f0..a1fadc497c 100644 --- a/lib/NGCP/Panel/Role/API/CFBNumberSets.pm +++ b/lib/NGCP/Panel/Role/API/CFBNumberSets.pm @@ -45,18 +45,21 @@ sub _item_rs { $item_rs = $c->model('DB')->resultset('voip_cf_bnumber_sets'); } elsif ($c->user->roles eq "reseller" || $c->user->roles eq "ccare") { my $reseller_id = $c->user->reseller_id; - $item_rs = $c->model('DB')->resultset('voip_cf_bnumber_sets') - ->search_rs({ - 'reseller_id' => $reseller_id, - } , { - join => {'subscriber' => {'contract' => 'contact'} }, - }); - # TODO: do we want subscriberadmins to update other subs' entries? - } elsif ($c->user->roles eq "subscriberadmin" || $c->user->roles eq "subscriber") { - $item_rs = $c->model('DB')->resultset('voip_cf_bnumber_sets') - ->search_rs({ - 'subscriber_id' => $c->user->id, - }); + $item_rs = $c->model('DB')->resultset('voip_cf_bnumber_sets')->search_rs({ + 'contact.reseller_id' => $reseller_id, + },{ + join => { 'subscriber' => { 'contract' => 'contact' } }, + }); + } elsif ($c->user->roles eq "subscriberadmin") { + $item_rs = $c->model('DB')->resultset('voip_cf_bnumber_sets')->search_rs({ + 'subscriber.account_id' => $c->user->account_id, + },{ + join => 'subscriber', + }); + } elsif ($c->user->roles eq "subscriber") { + $item_rs = $c->model('DB')->resultset('voip_cf_bnumber_sets')->search_rs({ + 'subscriber_id' => $c->user->id, + }); } return $item_rs;