From 99100d7e0d0b22a1844dde88acd529e79d096463 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 10 Aug 2009 11:50:04 +0000 Subject: when using pkg-balances, limit self-service access when a customer with multiple packages logs on, RT#4189 --- fs_selfservice/FS-SelfService/cgi/login.html | 2 +- fs_selfservice/FS-SelfService/cgi/logout.html | 2 +- .../cgi/make_thirdparty_payment.html | 13 ++--- fs_selfservice/FS-SelfService/cgi/myaccount.html | 12 +++- .../FS-SelfService/cgi/myaccount_menu.html | 65 +++++++++++++--------- fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 10 ++-- 6 files changed, 62 insertions(+), 42 deletions(-) (limited to 'fs_selfservice/FS-SelfService/cgi') diff --git a/fs_selfservice/FS-SelfService/cgi/login.html b/fs_selfservice/FS-SelfService/cgi/login.html index 760f579bb..eef412da3 100644 --- a/fs_selfservice/FS-SelfService/cgi/login.html +++ b/fs_selfservice/FS-SelfService/cgi/login.html @@ -3,7 +3,7 @@ Login <%= $head %> - + <%= $body_header %> Login

diff --git a/fs_selfservice/FS-SelfService/cgi/logout.html b/fs_selfservice/FS-SelfService/cgi/logout.html index e2de648ce..5e22ad80c 100644 --- a/fs_selfservice/FS-SelfService/cgi/logout.html +++ b/fs_selfservice/FS-SelfService/cgi/logout.html @@ -3,7 +3,7 @@ MyAccount <%= $head %> - + <%= $body_header %> MyAccount

diff --git a/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html b/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html index 042b8b37c..b2900b1e9 100755 --- a/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html +++ b/fs_selfservice/FS-SelfService/cgi/make_thirdparty_payment.html @@ -1,5 +1,6 @@ -My Account -MyAccount

+<%= $url = "$selfurl?session=$session_id;action="; ''; %> +<%= include('header') %> + -<%= $url = "$selfurl?session=$session_id;action="; ''; %> -<%= include('myaccount_menu') %> - + Pay now

<%= if ( $error ) { @@ -34,5 +33,5 @@ EOF $OUT .= qq!!; } %> - - + +<%= include('footer') %> diff --git a/fs_selfservice/FS-SelfService/cgi/myaccount.html b/fs_selfservice/FS-SelfService/cgi/myaccount.html index bcfcf9540..d6527fe76 100644 --- a/fs_selfservice/FS-SelfService/cgi/myaccount.html +++ b/fs_selfservice/FS-SelfService/cgi/myaccount.html @@ -4,11 +4,17 @@ Hello <%= $name %>!

<%= $small_custview %>
+<%= if ( $pkgnum ) { + $OUT .= qq!Balance: \$$balance

!; + } + ''; +%> + <%= if ( $balance > 0 ) { - if (scalar(grep $_, @hide_payment_field)) { - $OUT .= qq! Make a payment

!; - } else { + if (scalar(grep $_, @hide_payment_fields)) { $OUT .= qq! Make a payment

!; + } else { + $OUT .= qq! Make a payment

!; } } %> <%= diff --git a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html index 5cf4fe2d9..617ae3ebe 100644 --- a/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html +++ b/fs_selfservice/FS-SelfService/cgi/myaccount_menu.html @@ -7,15 +7,18 @@ <%= my @menu = ( -{ title=>' ' }, -{ title=>'Overview', url=>'myaccount', size=>'+1', }, -{ title=>' ' }, - -{ title=>'Purchase', size=>'+1', }, - { title=>'Purchase additional package', - url=>'customer_order_pkg', 'indent'=>2 }, + { title=>' ' }, + { title=>'Overview', url=>'myaccount', size=>'+1', }, + { title=>' ' }, + { title=>'Purchase', size=>'+1', }, ); +unless ( $pkgnum ) { + push @menu, + { title=>'Purchase additional package', + url=>'customer_order_pkg', 'indent'=>2 }; +} + if ( 1 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eventually per-pkg or something really fancy #XXXFIXME still a bit sloppy for multi-gateway of differing namespace @@ -34,7 +37,7 @@ if ( 1 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eve while($i < scalar(@cust_paybys)) { last if $cust_paybys[$i] =~ /^CHEK/; $i++ } if ( $cust_paybys[$i] =~ /^CHEK/ ) { push @menu, { title => 'Recharge my account with a check', - url => $hide_payment_field[$i] + url => $hide_payment_fields[$i] ? 'make_thirdparty_payment&payby_method=ECHECK' : 'make_ach_payment', indent => 2, @@ -49,26 +52,36 @@ if ( 1 ) { #XXXFIXME "enable selfservice prepay features" flag or something, eve } -push @menu, ( - -{ title=>' ' }, +push @menu, + { title=>' ' }, + { title=>'View my usage', url=>'view_usage', size=>'+1', }, +; -{ title=>'View my usage', url=>'view_usage', size=>'+1', }, -{ title=>'Setup my services', url=>'provision', size=>'+1', }, - -{ title=>' ' }, +unless ( $pkgnum ) { + push @menu, + { title=>'Setup my services', url=>'provision', size=>'+1', }, + ; +} -{ title=>'Change my information', size=>'+1', }, - { title=>'Change billing address', url=>'change_bill', indent=>2 }, - { title=>'Change service address', url=>'change_ship', indent=>2 }, - { title=>'Change payment information', url=>'change_pay', indent=>2 }, - { title=>'Change password(s)', url=>'change_password', indent=>2 }, +push @menu, + { title=>' ' }; -{ title=>' ' }, +push @menu, + { title=>'Change my information', size=>'+1', }; -{ title=>'Logout', url=>'logout', size=>'+1', }, +unless ( $pkgnum ) { + push @menu, + { title=>'Change billing address', url=>'change_bill', indent=>2 }, + { title=>'Change service address', url=>'change_ship', indent=>2 }, + { title=>'Change payment information', url=>'change_pay', indent=>2 }, + ; +} -); +push @menu, + { title=>'Change password(s)', url=>'change_password', indent=>2 }, + { title=>' ' }, + { title=>'Logout', url=>'logout', size=>'+1', }, +; foreach my $item ( @menu ) { @@ -83,15 +96,15 @@ foreach my $item ( @menu ) { } $OUT.='>'; - $OUT .= '' - if exists $item->{'size'}; - $OUT .= ' ' x $item->{'indent'} if exists $item->{'indent'}; $OUT .= '' if exists $item->{'url'} && $action ne $item->{'url'}; + $OUT .= '' + if exists $item->{'size'}; + $item->{'title'} =~ s/ / /g; $OUT .= $item->{'title'}; diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 09cfe6073..a5a7d1844 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -10,7 +10,7 @@ use HTML::Entities; use Date::Format; use Number::Format 1.50; use FS::SelfService qw( - skin_info login_info login customer_info edit_info invoice + access_info login_info login customer_info edit_info invoice payment_info process_payment realtime_collect process_prepay list_pkgs order_pkg signup_info order_recharge part_svc_info provision_acct provision_external @@ -98,7 +98,7 @@ warn "processing template $action\n" do_template($action, { 'session_id' => $session_id, 'action' => $action, #so the menu knows what tab we're on... - %{ payment_info( 'session_id' => $session_id ) }, # cust_paybys for the menu + #%{ payment_info( 'session_id' => $session_id ) }, # cust_paybys for the menu %{$result} }); @@ -645,8 +645,10 @@ sub do_template { $fill_in->{'selfurl'} = $cgi->self_url; $fill_in->{'cgi'} = \$cgi; - my $skin_info = skin_info(); - $fill_in->{$_} = $skin_info->{$_} foreach keys %$skin_info; + my $access_info = $session_id + ? access_info( 'session_id' => $session_id ) + : {}; + $fill_in->{$_} = $access_info->{$_} foreach keys %$access_info; my $source = "$template_dir/$name.html"; #warn "creating template for $source\n"; -- cgit v1.2.1