The Cpanel::Accounting perl module is designed to give programs that need access to create/remove/modify accounts an easy way to implement this in their perl program.
For security reasons if you are connecting to a remote server you should set the usessl varible to 1.
You must have the Net::SSLeay perl module installed for this to work.
Cpanel::Accounting supports the following methods
|
new Create a new Cpanel::Accounting Object
showversion Shows what version of WHM the remote server is running.
listaccts Lists currently active accounts.
listpkgs Lists packages avalible for creation.
addpkg Add a Package.
editpkg Edit a package.
createacct Creates a new account on the server.
killacct Terminates an account on the server.
suspend Suspends an account on the server.
unsuspend Unsuspends an account on the server. |
Below is a sample perl program.
|
#!/usr/bin/perl BEGIN { push (@INC,"/usr/local/cpanel”); } use Cpanel::Accounting;
my($whm) = Cpanel::Accounting->new; $whm->{host} = “localhost”; $whm->{user} = “<USERNAME HERE>”; $whm->{accesshash} = '<REMOTE ACCESS KEY HERE>'; $whm->{usessl} = 1;
my %ACCTS = $whm->listaccts(); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit; }
#$name,$hasshell,$bwlimit,$quota,$ip,$cgi,$frontpage,$cpmod,$maxftp,$maxsql,$maxpop,$maxlst,$maxsub,$maxpark,$maxaddon $response = $whm->editpkg("testpkg2",0,50000,5000,0,1,1,"bluelagoon",10,10,10,10,10,10,10); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit; }
foreach $acct (sort keys %ACCTS) { @ACCTCT = @{$ACCTS{$acct}}; print “$acct @ACCTCT\n”; }
$response = $whm->killacct(“<USERNAME TO TERMINATE>”); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit; } print $response;
my %PKGS = $whm->listpkgs(); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit; } foreach $package (sort keys %PKGS) { @PKCTS = @{$PKGS{$package}}; print “$package @PKCTS\n”; }
$response = $whm->createacct(“<DOMAIN NAME HERE>”,"<USERNAME HERE>“,"<PASSWORD HERE>”,"<PACKAGE HERE>”); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit; } print $response;
$response = $whm->suspend('<USERNAME HERE>'); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit; } print $response . “\n”;
$response = $whm->unsuspend('<USERNAME HERE>'); if ($whm->{error} ne “”) { print “There was an error while processing your request: Cpanel::Accounting returned [$whm->{error}]\n”; exit } print $response . “\n”; |