diff --git a/lib/admin/Controller/subscriber.pm b/lib/admin/Controller/subscriber.pm index 0be869d..c01daaa 100644 --- a/lib/admin/Controller/subscriber.pm +++ b/lib/admin/Controller/subscriber.pm @@ -121,35 +121,35 @@ sub detail : Local { $c->stash->{template} = 'tt/subscriber_detail.tt'; my $is_new = $c->request->params->{new}; - my $preferences; + my ($preferences, $subscriber); unless($is_new) { my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); my $regcon; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_registered_devices', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$regcon ); - $c->session->{subscriber}{registered_contacts} = $regcon if eval { @$regcon }; + $$subscriber{registered_contacts} = $regcon if eval { @$regcon }; my $regpeer; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_registered_peer', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$regpeer ); @@ -159,11 +159,11 @@ sub detail : Local { $$regpeer{contacts} =~ s/>/\>/g; $$regpeer{contacts_short} =~ s//\>/g; - $c->session->{subscriber}{registered_peer} = $regpeer; + $$subscriber{registered_peer} = $regpeer; } - eval { $c->session->{subscriber}{aliases} = [ sort @{$c->session->{subscriber}{aliases}} ] }; - $c->stash->{subscriber} = $c->session->{subscriber}; + eval { $$subscriber{aliases} = [ sort @{$$subscriber{aliases}} ] }; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber}{subscriber_id} = $subscriber_id; $c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})-> config->{VARIABLES}{site_config}{language}, @@ -213,26 +213,27 @@ sub update_subscriber : Local { my ( $self, $c ) = @_; my (%settings, %messages); + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; if($subscriber_id) { return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); } else { my $checkresult; - $c->session->{subscriber}{account_id} = $c->request->params->{account_id}; + $$subscriber{account_id} = $c->request->params->{account_id}; - $c->session->{subscriber}{username} = $c->request->params->{username}; + $$subscriber{username} = $c->request->params->{username}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_username', - $c->session->{subscriber}{username}, \$checkresult + $$subscriber{username}, \$checkresult ); $messages{username} = 'Client.Syntax.MalformedUsername' unless($checkresult); - $c->session->{subscriber}{domain} = $c->request->params->{domain}; + $$subscriber{domain} = $c->request->params->{domain}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_domain', - $c->session->{subscriber}{domain}, \$checkresult + $$subscriber{domain}, \$checkresult ); $messages{domain} = 'Client.Syntax.MalformedDomain' unless($checkresult); } @@ -266,7 +267,7 @@ sub update_subscriber : Local { ); $messages{webusername} = 'Client.Syntax.MalformedUsername' unless($checkresult); } else { - $settings{webusername} = $c->session->{subscriber}{username}; + $settings{webusername} = $$subscriber{username}; } @@ -303,9 +304,9 @@ sub update_subscriber : Local { if($c->model('Provisioning')->call_prov( $c, 'billing', ($subscriber_id ? 'update_voip_account_subscriber' : 'add_voip_account_subscriber'), - { id => $c->session->{subscriber}{account_id}, - subscriber => { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { id => $$subscriber{account_id}, + subscriber => { username => $$subscriber{username}, + domain => $$subscriber{domain}, %settings }, }, @@ -317,12 +318,12 @@ sub update_subscriber : Local { $c->response->redirect("/subscriber/detail?subscriber_id=$subscriber_id"); } else { return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, - \$c->session->{subscriber} + \$subscriber ); - $c->response->redirect("/subscriber/detail?subscriber_id=". $c->session->{subscriber}{subscriber_id}); + $c->response->redirect("/subscriber/detail?subscriber_id=". $$subscriber{subscriber_id}); } return; } @@ -335,8 +336,8 @@ sub update_subscriber : Local { if($subscriber_id) { $c->response->redirect("/subscriber/detail?subscriber_id=$subscriber_id&edit_subscriber=1"); } else { - $c->session->{restore_subscriber_input}{username} = $c->session->{subscriber}{username}; - $c->response->redirect("/subscriber/detail?account_id=". $c->session->{subscriber}{account_id} ."&new=1"); + $c->session->{restore_subscriber_input}{username} = $$subscriber{username}; + $c->response->redirect("/subscriber/detail?account_id=". $$subscriber{account_id} ."&new=1"); } return; } @@ -346,26 +347,27 @@ sub edit_aliases : Local { $c->stash->{template} = 'tt/subscriber_edit_aliases.tt'; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_subscriber', - { id => $c->session->{subscriber}{account_id}, - username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { id => $$subscriber{account_id}, + username => $$subscriber{username}, + domain => $$subscriber{domain}, }, - \$c->session->{subscriber} + \$subscriber ); eval { - $c->session->{subscriber}{alias_numbers} = + $$subscriber{alias_numbers} = [ sort { $$a{cc}.$$a{ac}.$$a{sn} cmp $$b{cc}.$$b{ac}.$$b{sn} } - @{$c->session->{subscriber}{alias_numbers}} ]; + @{$$subscriber{alias_numbers}} ]; }; - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; if(defined $c->session->{aliasadd}) { @@ -380,19 +382,20 @@ sub do_edit_aliases : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); - my $acid = $c->session->{subscriber}{account_id}; + my $acid = $$subscriber{account_id}; return unless $c->model('Provisioning')->call_prov( $c, 'billing', 'get_voip_account_subscriber', { id => $acid, - username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + username => $$subscriber{username}, + domain => $$subscriber{domain}, }, - \$c->session->{subscriber} + \$subscriber ); # delete button next to entries in alias list @@ -403,9 +406,9 @@ sub do_edit_aliases : Local { my $cc = $c->request->params->{alias_del_cc}; my $ac = $c->request->params->{alias_del_ac}; my $sn = $c->request->params->{alias_del_sn}; - my $aliaslist = $c->session->{subscriber}{alias_numbers}; + my $aliaslist = $$subscriber{alias_numbers}; if(defined $aliaslist) { - $c->session->{subscriber}{alias_numbers} = [ grep { $$_{cc} ne $cc or $$_{ac} ne $ac or $$_{sn} ne $sn } @$aliaslist ]; + $$subscriber{alias_numbers} = [ grep { $$_{cc} ne $cc or $$_{ac} ne $ac or $$_{sn} ne $sn } @$aliaslist ]; } } @@ -436,9 +439,9 @@ sub do_edit_aliases : Local { unless $checkresult; unless(keys %messages) { - my $aliaslist = $c->session->{subscriber}{alias_numbers}; + my $aliaslist = $$subscriber{alias_numbers}; $aliaslist = [] unless defined $aliaslist; - $c->session->{subscriber}{alias_numbers} = [ @$aliaslist, { cc => $cc, ac => $ac, sn => $sn } ]; + $$subscriber{alias_numbers} = [ @$aliaslist, { cc => $cc, ac => $ac, sn => $sn } ]; } else { $c->session->{aliasadd} = { cc => $cc, ac => $ac, sn => $sn }; } @@ -447,9 +450,9 @@ sub do_edit_aliases : Local { unless(keys %messages) { $c->model('Provisioning')->call_prov( $c, 'billing', 'update_voip_account_subscriber', { id => $acid, - subscriber => { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, - alias_numbers => $c->session->{subscriber}{alias_numbers}, + subscriber => { username => $$subscriber{username}, + domain => $$subscriber{domain}, + alias_numbers => $$subscriber{alias_numbers}, }, }, undef @@ -472,17 +475,19 @@ Locks a subscriber. sub lock : Local { my ( $self, $c ) = @_; + my $subscriber; + my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $lock = $c->request->params->{lock}; $c->model('Provisioning')->call_prov( $c, 'billing', 'lock_voip_account_subscriber', - { id => $c->session->{subscriber}{account_id}, - username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { id => $$subscriber{account_id}, + username => $$subscriber{username}, + domain => $$subscriber{domain}, lock => $lock, }, undef @@ -501,17 +506,18 @@ sub terminate : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); if($c->model('Provisioning')->call_prov( $c, 'billing', 'terminate_voip_account_subscriber', - { id => $c->session->{subscriber}{account_id}, - username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { id => $$subscriber{account_id}, + username => $$subscriber{username}, + domain => $$subscriber{domain}, }, undef)) { @@ -529,17 +535,19 @@ sub terminate : Local { sub expire : Local { my ( $self, $c ) = @_; + my $subscriber; + my $subscriber_id = $c->request->params->{subscriber_id}; my $contact_id = $c->request->params->{contact_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_subscriber_registered_device', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, id => $contact_id, }, undef @@ -562,67 +570,69 @@ sub preferences : Local { my ( $self, $c ) = @_; $c->stash->{template} = 'tt/subscriber_preferences.tt'; + my $subscriber; + my $preferences; my $speed_dial_slots; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); # voicebox requires a number - if(length $c->session->{subscriber}{sn} && $c->config->{voicemail_features}) { + if(length $$subscriber{sn} && $c->config->{voicemail_features}) { return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_voicebox_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, - \$c->session->{subscriber}{voicebox_preferences} + $$subscriber{voicebox_preferences} ); } return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_speed_dial_slots', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$speed_dial_slots ); if($c->config->{fax_features}) { return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_fax_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, - \$c->session->{subscriber}{fax_preferences} + $$subscriber{fax_preferences} ); } if($c->config->{subscriber}{audiofile_features}) { my $audio_files; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_audio_files', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$audio_files ); - $c->session->{subscriber}{audio_files} = $audio_files if eval { @$audio_files }; + $$subscriber{audio_files} = $audio_files if eval { @$audio_files }; } return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_reminder', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, - \$c->session->{subscriber}{reminder} + $$subscriber{reminder} ); - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber}{subscriber_id} = $subscriber_id; $c->stash->{subscriber}{is_locked} = $c->model('Provisioning')->localize($c, $c->view($c->config->{view})-> config->{VARIABLES}{site_config}{language}, @@ -633,7 +643,7 @@ sub preferences : Local { return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_preferences', undef, \$db_prefs ); - $c->session->{voip_preferences} = [ grep { $$_{usr_pref} } @$db_prefs ] if eval { @$db_prefs }; + my $voip_preferences = [ grep { $$_{usr_pref} } @$db_prefs ] if eval { @$db_prefs }; ### restore data entered by the user ### @@ -675,11 +685,11 @@ sub preferences : Local { ### build preference array for TT ### - if(ref $c->session->{voip_preferences} eq 'ARRAY') { + if(ref $voip_preferences eq 'ARRAY') { my @stashprefs; - foreach my $pref (@{$c->session->{voip_preferences}}) { + foreach my $pref (@$voip_preferences) { # managed separately next if $$pref{preference} eq 'lock'; @@ -772,16 +782,17 @@ sub update_preferences : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $preferences; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); @@ -824,17 +835,17 @@ sub update_preferences : Local { } elsif($fw_target =~ /^[a-z0-9&=+\$,;?\/_.!~*'()-]+\@[a-z0-9.-]+(:\d{1,5})?$/i) { $fw_target = 'sip:'. lc $fw_target; } elsif($fw_target =~ /^[a-z0-9&=+\$,;?\/_.!~*'()-]+$/) { - $fw_target = 'sip:'. lc($fw_target) .'@'. $c->session->{subscriber}{domain}; + $fw_target = 'sip:'. lc($fw_target) .'@'. $$subscriber{domain}; } else { $messages{$fwtype} = 'Client.Voip.MalformedTarget'; $fw_target = $c->request->params->{$fwtype .'_sipuri'}; } } elsif($fw_target_select eq 'voicebox') { - $fw_target = 'sip:vmu'.$c->session->{subscriber}{cc}.$c->session->{subscriber}{ac}.$c->session->{subscriber}{sn}."\@$vbdom"; + $fw_target = 'sip:vmu'.$$subscriber{cc}.$$subscriber{ac}.$$subscriber{sn}."\@$vbdom"; } elsif($fw_target_select eq 'fax2mail') { - $fw_target = 'sip:+'.$c->session->{subscriber}{cc}.$c->session->{subscriber}{ac}.$c->session->{subscriber}{sn}."\@$fmdom"; + $fw_target = 'sip:'.$$subscriber{cc}.$$subscriber{ac}.$$subscriber{sn}."\@$fmdom"; } elsif($fw_target_select eq 'conference') { - $fw_target = 'sip:conf='.$c->session->{subscriber}{cc}.$c->session->{subscriber}{ac}.$c->session->{subscriber}{sn}."\@$confdom"; + $fw_target = 'sip:conf='.$$subscriber{cc}.$$subscriber{ac}.$$subscriber{sn}."\@$confdom"; } $$preferences{$fwtype} = $fw_target; } elsif($$db_pref{preference} eq 'cli') { @@ -897,8 +908,8 @@ sub update_preferences : Local { unless(keys %messages) { if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, preferences => $preferences, }, undef @@ -925,11 +936,12 @@ sub update_reminder : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $reminder; $$reminder{time} = $c->request->params->{time}; @@ -939,8 +951,8 @@ sub update_reminder : Local { unless(keys %messages) { if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_reminder', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, data => $reminder, }, undef @@ -965,16 +977,17 @@ sub update_voicebox : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $vboxprefs; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_voicebox_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$vboxprefs ); @@ -1001,8 +1014,8 @@ sub update_voicebox : Local { unless(keys %messages) { if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_voicebox_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, preferences => $vboxprefs, }, undef @@ -1202,23 +1215,21 @@ sub edit_cf : Local { my $type = $c->request->params->{type}; $c->stash->{type} = $type; $c->stash->{seditid} = $c->request->params->{seditid}; - $c->stash->{teditid} = $c->request->params->{teditid}; my %messages; my $subscriber_id = $c->request->params->{subscriber_id}; $c->stash->{subscriber_id} = $subscriber_id; - my $subscriber; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$subscriber, + \$c->session->{subscriber} ); - $c->stash->{subscriber} = $subscriber; + $c->stash->{subscriber} = $c->session->{subscriber}; my $dsets; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_cf_destination_sets', - { username => $subscriber->{username}, - domain => $subscriber->{domain}, + { username => $c->session->{subscriber}{username}, + domain => $c->session->{subscriber}{domain}, }, \$dsets, ); @@ -1264,6 +1275,7 @@ sub edit_cf : Local { # cf preference is a cf_id, which points to a table callforwards[id, cf_id, wday, start, end, target] # 1. fetch rows from callforwards table matching subscriber and cf-type (we don't have the cf_id, have we?) + return 1; } @@ -1279,13 +1291,6 @@ sub edit_cf_saveset : Local { my $subscriber_id = $c->request->params->{subscriber_id}; $c->stash->{subscriber_id} = $subscriber_id; - my $subscriber; - return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', - { subscriber_id => $subscriber_id }, - \$subscriber, - ); - $c->stash->{subscriber} = $subscriber; - my %messages; my %dset; @@ -1293,8 +1298,8 @@ sub edit_cf_saveset : Local { $dset{id} = $dset_id; if($c->model('Provisioning')->call_prov( $c, 'voip', 'update_subscriber_cf_destination_set', - { username => $subscriber->{username}, - domain => $subscriber->{domain}, + { username => $c->session->{subscriber}{username}, + domain => $c->session->{subscriber}{domain}, data => \%dset, }, undef, @@ -1323,21 +1328,14 @@ sub edit_cf_delset : Local { my $subscriber_id = $c->request->params->{subscriber_id}; $c->stash->{subscriber_id} = $subscriber_id; - my $subscriber; - return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', - { subscriber_id => $subscriber_id }, - \$subscriber, - ); - $c->stash->{subscriber} = $subscriber; - my %messages; my %dset; $dset{id} = $dset_id; if($c->model('Provisioning')->call_prov( $c, 'voip', 'delete_subscriber_cf_destination_set', - { username => $subscriber->{username}, - domain => $subscriber->{domain}, + { username => $c->session->{subscriber}{username}, + domain => $c->session->{subscriber}{domain}, data => \%dset, }, undef, @@ -1363,21 +1361,14 @@ sub edit_cf_createset : Local { my $subscriber_id = $c->request->params->{subscriber_id}; $c->stash->{subscriber_id} = $subscriber_id; - my $subscriber; - return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', - { subscriber_id => $subscriber_id }, - \$subscriber, - ); - $c->stash->{subscriber} = $subscriber; - my %messages; my %dset; $dset{name} = $c->request->params->{dsetname}; if($c->model('Provisioning')->call_prov( $c, 'voip', 'create_subscriber_cf_destination_set', - { username => $subscriber->{username}, - domain => $subscriber->{domain}, + { username => $c->session->{subscriber}{username}, + domain => $c->session->{subscriber}{domain}, data => \%dset, }, undef, @@ -1593,7 +1584,7 @@ sub edit_list : Local { } } - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; $c->stash->{list_name} = $list; @@ -1615,16 +1606,17 @@ sub do_edit_list : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $preferences; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); @@ -1641,9 +1633,9 @@ sub do_edit_list : Local { } elsif($add =~ s/^\+// or $add =~ s/^$ccdp//) { # nothing more to do } elsif($add =~ s/^$acdp//) { - $add = $c->session->{subscriber}{cc} . $add; + $add = $$subscriber{cc} . $add; } else { - $add = $c->session->{subscriber}{cc} . $c->session->{subscriber}{ac} . $add; + $add = $$subscriber{cc} . $$subscriber{ac} . $add; } my $blocklist = $$preferences{$list}; $blocklist = [] unless defined $blocklist; @@ -1667,7 +1659,7 @@ sub do_edit_list : Local { } elsif($del =~ s/^\+// or $del =~ s/^$ccdp//) { # nothing more to do } elsif($del =~ s/^$acdp//) { - $del = $c->session->{subscriber}{cc} . $del; + $del = $$subscriber{cc} . $del; } $blocklist = [ $blocklist ] unless ref $blocklist; if($c->request->params->{block_stat}) { @@ -1690,7 +1682,7 @@ sub do_edit_list : Local { } elsif($act =~ s/^\+// or $act =~ s/^$ccdp//) { # nothing more to do } elsif($act =~ s/^$acdp//) { - $act = $c->session->{subscriber}{cc} . $act; + $act = $$subscriber{cc} . $act; } $blocklist = [ $blocklist ] unless ref $blocklist; if($c->request->params->{block_stat}) { @@ -1705,8 +1697,8 @@ sub do_edit_list : Local { unless(keys %messages) { $c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, preferences => { $list => $$preferences{$list}, }, @@ -1727,16 +1719,17 @@ sub edit_iplist : Local { $c->stash->{template} = 'tt/subscriber_edit_iplist.tt'; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $preferences; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); @@ -1756,7 +1749,7 @@ sub edit_iplist : Local { } } - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; $c->stash->{list_name} = $list; @@ -1772,16 +1765,17 @@ sub do_edit_iplist : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $preferences; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); @@ -1815,8 +1809,8 @@ sub do_edit_iplist : Local { unless(keys %messages) { $c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, preferences => { $list => $$preferences{$list}, }, @@ -1836,16 +1830,17 @@ sub edit_speed_dial_slots : Local { $c->stash->{template} = 'tt/subscriber_edit_speeddial.tt'; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $speed_dial_slots; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_speed_dial_slots', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$speed_dial_slots ); @@ -1897,7 +1892,7 @@ sub edit_speed_dial_slots : Local { } } - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; if(defined $c->session->{addslottxt}) { @@ -1916,11 +1911,12 @@ sub do_edit_speed_dial_slots : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); # add new entry form @@ -1936,7 +1932,7 @@ sub do_edit_speed_dial_slots : Local { $add_destination = admin::Utils::get_qualified_number_for_subscriber($c, $add_destination); my $checkresult; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_E164_number', $add_destination, \$checkresult); - $destination = 'sip:'. $add_destination .'@'. $c->session->{subscriber}{domain} + $destination = 'sip:'. $add_destination .'@'. $$subscriber{domain} if $checkresult; } else { $destination = $add_destination; @@ -1947,8 +1943,8 @@ sub do_edit_speed_dial_slots : Local { if($checkadd_slot and $checkadd_destination) { $c->model('Provisioning')->call_prov( $c, 'voip', 'create_speed_dial_slot', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, data => { slot => $add_slot, destination => $add_destination @@ -1978,8 +1974,8 @@ sub do_edit_speed_dial_slots : Local { my $delete_slotid = $c->request->params->{delete_id}; if(defined $delete_slotid) { $c->model('Provisioning')->call_prov( $c, 'voip', 'delete_speed_dial_slot', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, id => $delete_slotid }, undef @@ -2000,7 +1996,7 @@ sub do_edit_speed_dial_slots : Local { $update_destination = admin::Utils::get_qualified_number_for_subscriber($c, $update_destination); my $checkresult; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'check_E164_number', $update_destination, \$checkresult); - $destination = 'sip:'. $update_destination .'@'. $c->session->{subscriber}{domain} + $destination = 'sip:'. $update_destination .'@'. $$subscriber{domain} if $checkresult; } else { $destination = $update_destination; @@ -2011,8 +2007,8 @@ sub do_edit_speed_dial_slots : Local { if($checkupdate_slot and $checkupdate_destination) { $c->model('Provisioning')->call_prov( $c, 'voip', 'update_speed_dial_slot', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, id => $update_slotid, data => { slot => $update_slot, @@ -2055,11 +2051,12 @@ sub update_fax : Local { my ( $self, $c ) = @_; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $faxprefs; $$faxprefs{name} = $c->request->params->{name} || undef; @@ -2072,8 +2069,8 @@ sub update_fax : Local { unless(keys %messages) { if($c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_fax_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, preferences => $faxprefs, }, undef @@ -2100,16 +2097,17 @@ sub edit_destlist : Local { $c->stash->{template} = 'tt/subscriber_edit_destlist.tt'; my %messages; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $preferences; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_fax_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); @@ -2129,7 +2127,7 @@ sub edit_destlist : Local { } } - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; $c->stash->{list_name} = $list; $c->stash->{edit_dest} = $c->request->params->{list_edit}; @@ -2147,16 +2145,17 @@ sub do_edit_destlist : Local { my %messages; my %entry; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); my $preferences; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_fax_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, }, \$preferences ); @@ -2209,8 +2208,8 @@ sub do_edit_destlist : Local { unless(keys %messages) { $c->model('Provisioning')->call_prov( $c, 'voip', 'set_subscriber_fax_preferences', - { username => $c->session->{subscriber}{username}, - domain => $c->session->{subscriber}{domain}, + { username => $$subscriber{username}, + domain => $$subscriber{domain}, preferences => { $list => $$preferences{$list}, }, @@ -2229,18 +2228,20 @@ sub edit_audio_files : Local { my ( $self, $c ) = @_; $c->stash->{template} = 'tt/subscriber_edit_audio_files.tt'; + my $subscriber; + my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; my %settings; - $settings{username} = $c->session->{subscriber}{username}; - $settings{domain} = $c->session->{subscriber}{domain}; + $settings{username} = $$subscriber{username}; + $settings{domain} = $$subscriber{domain}; my $audio_files; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_audio_files', @@ -2281,18 +2282,19 @@ sub do_create_audio : Local { my %messages; my %settings; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; - $settings{username} = $c->session->{subscriber}{username}; - $settings{domain} = $c->session->{subscriber}{domain}; + $settings{username} = $$subscriber{username}; + $settings{domain} = $$subscriber{domain}; $settings{handle} = $c->request->params->{handle}; $settings{data}{description} = $c->request->params->{description} if length $c->request->params->{description}; @@ -2329,18 +2331,19 @@ sub do_update_audio : Local { my %messages; my %settings; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; - $settings{username} = $c->session->{subscriber}{username}; - $settings{domain} = $c->session->{subscriber}{domain}; + $settings{username} = $$subscriber{username}; + $settings{domain} = $$subscriber{domain}; $settings{handle} = $c->request->params->{handle}; unless(length $settings{handle}) { $c->response->redirect("/subscriber/edit_audio_files?subscriber_id=$subscriber_id"); @@ -2381,18 +2384,19 @@ sub do_delete_audio : Local { my ( $self, $c ) = @_; my %settings; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); - $c->stash->{subscriber} = $c->session->{subscriber}; + $c->stash->{subscriber} = $subscriber; $c->stash->{subscriber_id} = $subscriber_id; - $settings{username} = $c->session->{subscriber}{username}; - $settings{domain} = $c->session->{subscriber}{domain}; + $settings{username} = $$subscriber{username}; + $settings{domain} = $$subscriber{domain}; $settings{handle} = $c->request->params->{handle}; unless(length $settings{handle}) { $c->response->redirect("/subscriber/edit_audio_files?subscriber_id=$subscriber_id"); @@ -2422,15 +2426,16 @@ sub listen_audio : Local { my ( $self, $c ) = @_; my %settings; + my $subscriber; my $subscriber_id = $c->request->params->{subscriber_id}; return unless $c->model('Provisioning')->call_prov( $c, 'voip', 'get_subscriber_by_id', { subscriber_id => $subscriber_id }, - \$c->session->{subscriber} + \$subscriber ); - $settings{username} = $c->session->{subscriber}{username}; - $settings{domain} = $c->session->{subscriber}{domain}; + $settings{username} = $$subscriber{username}; + $settings{domain} = $$subscriber{domain}; $settings{handle} = $c->request->params->{handle}; unless(length $settings{handle}) { $c->response->redirect("/subscriber/edit_audio_files?subscriber_id=$subscriber_id");