X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2Fcgi%2Fselfservice.cgi;h=b008fbf8b4ab8d92ad05a92970f15292fcc319e6;hb=bb22f46481173b008fc9cb98b108ef1da9c1dc4d;hp=13723118c7486fee87d79bef679622e81ab805ee;hpb=7b268e364a68b076e1f3bd3741159fb51759ee19;p=freeside.git diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 13723118c..b008fbf8b 100755 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -105,7 +105,7 @@ unless ( $nologin_actions{$action} ) { my %cookies = CGI::Cookie->fetch; - my $login_rv; + my $login_rv = {}; if ( exists($cookies{'session'}) ) { @@ -124,7 +124,15 @@ unless ( $nologin_actions{$action} ) { 'email' => $email, 'password' => $password ); - $session_id = $login_rv->{'session_id'}; + + if ( $login_rv->{'error'} ) { + my $ip = $cgi->remote_addr(); + warn("login failure [email $email] [ip $ip] [error $login_rv->{error}]"); + } else { + #successful login + } + + $session_id = $login_rv->{'session_id'}; } else { @@ -178,15 +186,9 @@ unless ( $nologin_actions{$action} ) { } # else session_id ne 'login' - } else { - # there is no session cookie - $login_rv = {}; - } + } # else there is no session cookie if ( !$session_id ) { - # XXX why are we getting agentnum from a CGI param? surely it should - # be some kind of configuration option. - # # show the login page $session_id = 'login'; # set state my $login_info = login_info( 'agentnum' => scalar($cgi->param('agentnum')) ); @@ -211,7 +213,7 @@ if ( $result->{error} && ( $result->{error} eq "Can't resume session" || $result->{error} eq "Expired session") ) { #ick $session_id = 'login'; - my $login_info = login_info(); + my $login_info = login_info( 'agentnum' => scalar($cgi->param('agentnum')) ); do_template('login', $login_info); exit; } @@ -312,6 +314,7 @@ sub process_change_pay { 'error' => 'Postal or email required.', }; } + _process_change_info( 'change_pay', @list ); } @@ -633,7 +636,10 @@ sub payment_results { my $auto = 0; $auto = 1 if $cgi->param('auto'); - $cgi->param('paybatch') =~ /^([\w\-\.]+)$/ or die "illegal paybatch"; + $cgi->param('payunique') =~ /^([\w\-\.]*)$/ or die "illegal payunique"; + my $payunique = $1; + + $cgi->param('paybatch') =~ /^([\w\-\.]*)$/ or die "illegal paybatch"; my $paybatch = $1; $cgi->param('discount_term') =~ /^(\d*)$/ or die "illegal discount_term"; @@ -657,6 +663,7 @@ sub payment_results { 'country' => $country, 'save' => $save, 'auto' => $auto, + 'payunique' => $payunique, 'paybatch' => $paybatch, 'discount_term' => $discount_term, ); @@ -929,11 +936,17 @@ sub delete_svc { } sub view_usage { - list_svcs( + my $res = list_svcs( 'session_id' => $session_id, 'svcdb' => [ 'svc_acct', 'svc_phone', 'svc_port', ], 'ncancelled' => 1, ); + if ($res->{hide_usage}) { + $action = 'myaccount'; + return myaccount(); + } else { + return $res; + } } sub real_port_graph { @@ -1062,10 +1075,10 @@ sub do_template { $fill_in->{$_} = $access_info->{$_} foreach keys %$access_info; # update the user's authentication - my $timeout = $access_info->{'timeout'} || '60'; + my $timeout = $access_info->{'timeout'} || '3600'; my $cookie = CGI::Cookie->new('-name' => 'session', '-value' => $session_id, - '-expires' => '+'.$timeout, + '-expires' => '+'.$timeout.'s', #'-secure' => 1, # would be a good idea... ); if ( $name eq 'logout' ) {