X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2FClientAPI%2FAgent.pm;h=e1624b9300bae113cb29c6b1cbb5a58ae05380af;hb=387c96b0d8f224f3ade27bed9348f37b432bbb8a;hp=daede59a8faa6281fd20e18c711dc6ac36988926;hpb=5e05724a635a22776f1b973f5d7e77989da4e048;p=freeside.git diff --git a/FS/FS/ClientAPI/Agent.pm b/FS/FS/ClientAPI/Agent.pm index daede59a8..e1624b930 100644 --- a/FS/FS/ClientAPI/Agent.pm +++ b/FS/FS/ClientAPI/Agent.pm @@ -9,7 +9,7 @@ use Digest::MD5 qw(md5_hex); use FS::Record qw(qsearchs); # qsearch dbdef dbh); use FS::ClientAPI_SessionCache; use FS::agent; -use FS::cust_main qw(smart_search); +use FS::cust_main::Search qw(smart_search); sub _cache { $cache ||= new FS::ClientAPI_SessionCache( { @@ -17,6 +17,31 @@ sub _cache { } ); } +sub new_agent { + my $p = shift; + + my $conf = new FS::Conf; + return { error=>'Disabled' } unless $conf->exists('selfservice-agent_signup'); + + #add a customer record and set agent_custnum? + + my $agent = new FS::agent { + 'typenum' => $conf->config('selfservice-agent_signup-agent_type'), + 'agent' => $p->{'agent'}, + 'username' => $p->{'username'}, + '_password' => $p->{'password'}, + # + }; + + my $error = $agent->insert; + + return { 'error' => $error } if $error; + + agent_login({ 'username' => $p->{'username'}, + 'password' => $p->{'password'}, + }); +} + sub agent_login { my $p = shift;