Use proper PBX group helper when changing PBX ext.

agranig/peering-route
Andreas Granig 12 years ago
parent 9efb1f8124
commit ceb9f80eab

@ -244,7 +244,8 @@ sub subscriber_create :Chained('base') :PathPart('subscriber/create') :Args(0) {
NGCP::Panel::Utils::Subscriber::update_pbx_group_prefs(
c => $c,
schema => $schema,
group_id => $form->params->{pbx_group_id},
old_group_id => undef,
new_group_id => $form->params->{pbx_group_id},
username => $form->params->{username},
domain => $billing_subscriber->domain->domain,
) if($pbx && !$pbxadmin && $form->params->{pbx_group_id});

@ -290,21 +290,14 @@ sub terminate :Chained('base') :PathPart('terminate') :Args(0) {
}
my $prov_subscriber = $subscriber->provisioning_voip_subscriber;
if($prov_subscriber) {
if($prov_subscriber->voip_pbx_group) {
my $group_subscriber = $prov_subscriber->voip_pbx_group->provisioning_voip_subscriber;
if($group_subscriber) {
my $hunt_group = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c,
prov_subscriber => $group_subscriber,
attribute => 'cloud_pbx_hunt_group'
);
my $pref = $hunt_group->find({
value => 'sip:'.$prov_subscriber->username .
'@' . $prov_subscriber->domain->domain
});
$pref->delete if($pref);
}
}
NGCP::Panel::Utils::Subscriber::update_pbx_group_prefs(
c => $c,
schema => $schema,
old_group_id => $prov_subscriber->voip_pbx_group->id,
new_group_id => undef,
username => $prov_subscriber->username,
domain => $prov_subscriber->domain->domain,
) if($prov_subscriber->voip_pbx_group);
$prov_subscriber->delete;
}
$subscriber->voip_numbers->delete_all;

@ -268,34 +268,41 @@ sub update_pbx_group_prefs {
my %params = @_;
my $c = $params{c};
my $schema = $params{schema};
my $schema = $params{schema} // $c->model('DB');
my $old_group_id = $params{old_group_id};
my $new_group_id = $params{new_group_id};
my $username = $params{username};
my $domain = $params{domain};
return if($old_group_id == $new_group_id);
return if(defined $old_group_id && defined $new_group_id && $old_group_id == $new_group_id);
my $old_grp_subscriber;
my $new_grp_subscriber;
my $old_grp_subscriber = $c->model('DB')->resultset('voip_pbx_groups')
my $uri = "sip:$username\@$domain";
if($old_group_id) {
$old_grp_subscriber= $c->model('DB')->resultset('voip_pbx_groups')
->find($old_group_id)
->provisioning_voip_subscriber;
my $new_grp_subscriber = $c->model('DB')->resultset('voip_pbx_groups')
if($old_grp_subscriber) {
my $grp_pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'cloud_pbx_hunt_group', prov_subscriber => $old_grp_subscriber
);
my $pref = $grp_pref_rs->find({ value => $uri });
$pref->delete if($pref);
}
}
if($new_group_id) {
$new_grp_subscriber = $c->model('DB')->resultset('voip_pbx_groups')
->find($new_group_id)
->provisioning_voip_subscriber;
my $uri = "sip:$username\@$domain";
if($old_grp_subscriber) {
my $grp_pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'cloud_pbx_hunt_group', prov_subscriber => $old_grp_subscriber
);
my $pref = $grp_pref_rs->find({ value => $uri });
$pref->delete if($pref);
}
if($new_grp_subscriber) {
my $grp_pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'cloud_pbx_hunt_group', prov_subscriber => $new_grp_subscriber
);
unless($grp_pref_rs->find({ value => $uri })) {
$grp_pref_rs->create({ value => $uri });
if($new_grp_subscriber) {
my $grp_pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => 'cloud_pbx_hunt_group', prov_subscriber => $new_grp_subscriber
);
unless($grp_pref_rs->find({ value => $uri })) {
$grp_pref_rs->create({ value => $uri });
}
}
}
}

Loading…
Cancel
Save