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 3 years ago
parent b838c5d0e7
commit 673ac66c70

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

Loading…
Cancel
Save