From 523102cc14726a59731909d6a1051a04c7200b4e Mon Sep 17 00:00:00 2001 From: Daniel Tiefnig Date: Thu, 15 Mar 2012 00:57:41 +0000 Subject: [PATCH] avoid Voip::get_subscriber functions where possible This needs to be cleaned up far more than expected. The code uses subscriber information out of $c->session->{user} and sometimes $c->session->{user}{data} at random as it seems. It's not clear what's the difference between the logged-in subscriber and the one we operate on, even though currently they are always identical. Further we should use the user-provided credentials to access the provisioning interface and remove all the custom access functions in the Provisioning Model. --- lib/csc/Controller/callforward.pm | 4 ++-- lib/csc/Controller/reminder.pm | 5 +++-- lib/csc/Model/Provisioning.pm | 13 +++++-------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/lib/csc/Controller/callforward.pm b/lib/csc/Controller/callforward.pm index aa95d1f..1ed3dd4 100644 --- a/lib/csc/Controller/callforward.pm +++ b/lib/csc/Controller/callforward.pm @@ -746,8 +746,8 @@ sub load_subscriber :Private { my $subscriber; - return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', - { subscriber_id => $c->session->{user}->{data}->{subscriber_id} }, + return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_voip_account_subscriber_by_id', + { id => $c->session->{user}->{data}->{subscriber_id} }, \$subscriber, ); return $subscriber; diff --git a/lib/csc/Controller/reminder.pm b/lib/csc/Controller/reminder.pm index e0299cb..3bd6fac 100644 --- a/lib/csc/Controller/reminder.pm +++ b/lib/csc/Controller/reminder.pm @@ -30,8 +30,9 @@ sub index : Private { $c->log->debug('***reminder::index called'); $c->stash->{template} = 'tt/reminder.tt'; - return 1 unless $c->model('Provisioning')->call_prov($c, 'voip', 'get_subscriber', - { username => $c->session->{user}{username}, + return 1 unless $c->model('Provisioning')->call_prov($c, 'billing', 'get_voip_account_subscriber', + { id => $c->session->{user}{account_id}, + username => $c->session->{user}{username}, domain => $c->session->{user}{domain}, }, \$c->session->{user}{data} diff --git a/lib/csc/Model/Provisioning.pm b/lib/csc/Model/Provisioning.pm index 81cc715..af93630 100644 --- a/lib/csc/Model/Provisioning.pm +++ b/lib/csc/Model/Provisioning.pm @@ -141,8 +141,9 @@ sub get_usr_preferences { eval { $c->session->{user}{data} = - $$self{prov}->get_subscriber({username => $c->session->{user}{username}, - domain => $c->session->{user}{domain}}); + $$self{billing}->get_voip_account_subscriber({id => $c->session->{user}{account_id}, + username => $c->session->{user}{username}, + domain => $c->session->{user}{domain} }); $c->session->{user}{preferences} = $$self{prov}->get_subscriber_preferences({username => $c->session->{user}{username}, domain => $c->session->{user}{domain}}); @@ -438,11 +439,7 @@ sub get_voip_account_subscribers { $$self{prov}->get_voip_account_subscribers({ id => $c->session->{user}{account_id} }); foreach my $subscriber (@{$c->session->{user}{subscribers}}) { - $subscriber = - $$self{prov}->get_subscriber({ - username => $$subscriber{username}, - domain => $$subscriber{domain} - }); + $$subscriber{preferences} = $$self{prov}->get_subscriber_preferences({ username => $$subscriber{username}, @@ -1158,7 +1155,7 @@ sub _get_user { my ($loc, $dom) = split /\@/, $user; my $user_obj = eval { - my $tmpobj = $$self{prov}->get_subscriber_by_webuser({webusername => $loc, domain => $dom}); + my $tmpobj = $$self{billing}->get_voip_account_subscriber_by_webuser({webusername => $loc, domain => $dom}); my $tmpref = $$self{prov}->get_subscriber_preferences({username => $$tmpobj{username}, domain => $dom}); $$tmpobj{extension} = $$tmpref{extension}; return $tmpobj;