X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FMyAccount.pm;h=f2cd488630eb6e56b21c8b9cee63b0e262eaf374;hp=271d0c2cc97868e7d59c4647e7f49d6ec4ddc816;hb=edf90a3eb4219f72c8962ad86caacf409b896e8f;hpb=3913f6d159b5b8110061690b7c97642c27abf7eb diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index 271d0c2cc..f2cd48863 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -60,6 +60,8 @@ sub login { 'domsvc' => $svc_domain->svcnum, } ); return { error => 'User not found.' } unless $svc_acct; + + return { error => 'Incorrect password.' } unless $svc_acct->check_password($p->{'password'}); @@ -73,6 +75,12 @@ sub login { $session->{'custnum'} = $cust_main->custnum; } + my $conf = new FS::Conf; + my $pkg_svc = $svc_acct->cust_svc->pkg_svc; + return { error => 'Only primary user may log in.' } + if $conf->exists('selfservice_server-primary_only') + && ( ! $pkg_svc || $pkg_svc->primary ne 'Y' ); + my $session_id; do { $session_id = md5_hex(md5_hex(time(). {}. rand(). $$))