MT#8547 - fix SWITCH inside "foreach" handling

changes/94/294/1
Kirill Solomko 12 years ago
parent a99f707522
commit 1c8b6e4a1c

@ -74,7 +74,10 @@ sub get_resource {
SWITCH: for ($pref->attribute->attribute) {
/^rewrite_calle[re]_(in|out)_dpid$/ && do {
next if(exists $resource->{rewrite_rule_set});
if(exists $resource->{rewrite_rule_set}) {
$processed = 1;
last SWITCH;
}
my $col = $pref->attribute->attribute;
$col =~ s/^rewrite_//;
my $rwr_set = $c->model('DB')->resultset('voip_rewrite_rule_sets')->find({
@ -374,7 +377,7 @@ sub update_item {
/^(adm_)?ncos$/ && do {
unless(exists $resource->{$k}) {
my $rs = $self->get_preference_rs($c, $type, $elem, $k . '_id');
next unless $rs; # unknown resource, just ignore
last SWITCH unless $rs; # unknown resource, just ignore
$rs->delete;
}
last SWITCH;
@ -382,7 +385,7 @@ sub update_item {
/^(man_)?allowed_ips$/ && do {
unless(exists $resource->{$k}) {
my $rs = $self->get_preference_rs($c, $type, $elem, $k . '_grp');
next unless $rs; # unknown resource, just ignore
last SWITCH unless $rs; # unknown resource, just ignore
if($rs->first) {
$c->model('DB')->resultset('voip_allowed_ip_groups')->search({
group_id => $rs->first->value,
@ -395,14 +398,14 @@ sub update_item {
# default
unless(exists $resource->{$k}) {
my $rs = $self->get_preference_rs($c, $type, $elem, $k);
next unless $rs; # unknown resource, just ignore
last SWITCH unless $rs; # unknown resource, just ignore
$rs->delete;
if ($type eq "subscribers" && ($k eq 'voicemail_echo_number' || $k eq 'cli')) {
NGCP::Panel::Utils::Subscriber::update_voicemail_number(
schema => $c->model('DB'), subscriber => $item);
}
}
}
} # SWITCH
}
} catch($e) {
$c->log->error("failed to clear preference for '$accessor': $e");

Loading…
Cancel
Save