MT#56234 fix cli check for subscriber roles

* cli preference assigned number is only checked when
  the user's role is subscriberadmin or subscriber

Change-Id: I71f9207f4705eb1ae6f4ea0810dd3a1e541144cf
mr11.2
Kirill Solomko 2 years ago
parent b838c5d0e7
commit 673ac66c70

@ -604,20 +604,22 @@ sub update_preferences {
foreach my $k(keys %{ $old_resource }) {
SWITCH: for ($k) {
/^cli$/ && do {
my $cli = $resource->{$k};
my @allowed_cli_numbers = $c->model('DB')->resultset('voip_dbaliases')->search({
'subscriber.account_id' => $item->contract_id,
},{
select => ['me.username'],
as => ['number'],
join => 'subscriber',
result_class => 'DBIx::Class::ResultClass::HashRefInflator',
})->all;
unless (any { $_->{number} eq $cli } @allowed_cli_numbers) {
my $err_msg = "Only numbers that belong to the customer can be assigned as 'cli'";
$c->log->error($err_msg);
&$err_code(HTTP_UNPROCESSABLE_ENTITY, $err_msg);
return;
if ($c->user->roles eq "subscriberadmin" || $c->user->roles eq "subscriber") {
my $cli = $resource->{$k};
my @allowed_cli_numbers = $c->model('DB')->resultset('voip_dbaliases')->search({
'subscriber.account_id' => $item->contract_id,
},{
select => ['me.username'],
as => ['number'],
join => 'subscriber',
result_class => 'DBIx::Class::ResultClass::HashRefInflator',
})->all;
unless (any { $_->{number} eq $cli } @allowed_cli_numbers) {
my $err_msg = "Only numbers that belong to the customer can be assigned as 'cli'";
$c->log->error($err_msg);
&$err_code(HTTP_UNPROCESSABLE_ENTITY, $err_msg);
return;
}
}
last SWITCH;
};

Loading…
Cancel
Save