This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/modules/core/helm.inc.php

219 lines
5.4 KiB
PHP
Raw Normal View History

<?php
/**
* AgileBill - Open Billing Software
*
* This body of work is free software; you can redistribute it and/or
* modify it under the terms of the Open AgileBill License
* License as published at http://www.agileco.com/agilebill/license1-4.txt
*
* For questions, help, comments, discussion, etc., please join the
* Agileco community forums at http://forum.agileco.com/
*
* @link http://www.agileco.com/
* @copyright 2004-2008 Agileco, LLC.
* @license http://www.agileco.com/agilebill/license1-4.txt
* @author Tony Landis <tony@agileco.com>
* @package AgileBill
* @version 1.4.93
*/
/**
* Helm Remote Class
*/
class HELM
{
var $host;
var $port;
var $ssl;
var $user;
var $pass;
var $home_dir;
var $shell;
/*
* Check for Agilebill
*/
function HELM()
{
if(!defined("PATH_FILES"))
{
echo "Dependancy Failure!";
exit;
}
}
/*
* Add a user and define available modules
*/
function add($reseller,$username,$domain,$tld,$plan_id,$plan_name,$fname,$lname,$company,$address,$city,$state,$zip,$email)
{
# got to login first...
$url = $this->host.'/default.asp';
$post = "txtUsername=tony&txtPassword=slashdot1&RememberMe=1&btnProcess=Login&selLanguageCode=EN&selInterface=standard_XP";
$ret = $this->connect($url,$post);
# logged in ok?
if(!eregi("You are now logged in", $ret)) {
echo "Login failed";
return false;
}
# create the user
$url = $this->host.'/interfaces/standard/addUser.asp';
$post = "processing=1".
"&UserAccNum=$reseller".
"&SendWelcomeMessage=1".
"&action=ADD".
"&edited=TRUE".
"&NewAccountNumber=$username".
"&FirstName=$fname".
"&LastName=$lname".
"&CompanyName=$company".
"&Address1=$address".
"&Town=$city".
"&County=$state".
"&Postcode=$zip".
"&PrimaryEmail=$email".
"&Country=US";
$ret = $this->connect($url,$post);
if($this->debug) echo "<br><br>$url?$post<br><textarea cols=100 rows=20>$ret</textarea>";
# Add the package
$url = $this->host.'/interfaces/standard/addpackage.asp';
$post = "processing=0".
"&txtStatus=0".
"&UserAccNum=$username".
"&action=ADD".
"&PlanID=$plan_id".
"&PackageName=$plan_name";
$ret = $this->connect($url,$post);
if($this->debug) echo "<br><br>$url?$post<br><textarea cols=100 rows=20>$ret</textarea>";
# Get the Package ID Just added
$USERNAME = strtoupper($username);
preg_match ("/(UserAccNum=$USERNAME&PackageID=)+([0-9]){1,}/i", $ret, $arr);
if(is_array($arr) && count($arr) > 0)
{
$package = ereg_replace("UserAccNum=$USERNAME&PackageID=","", $arr[0]);
}
# Test for package id
if(!@$package > 0)
{
if($this->debug) echo 'Invalid package Id, cannot add domain.';
return false;
}
# Add the Domain
$url = $this->host.'/interfaces/standard/AddDomain.asp';
$post = "processing=0".
"&stage=4".
"&UserAccNum=$username".
"&action=ADD".
"&selDomainReg=NONE".
"&PackageID=$package".
"&DomainName=$domain".
"&DomainExt=$tld";
$ret = $this->connect($url,$post, 5);
if($this->debug) echo "<br><br>$url?$post<br><textarea cols=100 rows=20>$ret</textarea>";
# if it timed out, no errors took place!
if(empty($ret))
return true;
else
return false;
}
/*
* Suspend account in helm
*/
function suspend($username)
{
# Add the Domain
$url = $this->host.'/interfaces/standard/user.asp';
$post = "action=EDIT".
"&UserAccNum=$username".
"&txtStatus=1";
$ret = $this->connect($url,$post, 5);
if($this->debug) echo "<br><br>$url?$post<br><textarea cols=100 rows=20>$ret</textarea>";
if($ret != false)
return true;
else
return false;
}
/*
* Unsuspend account in helm
*/
function unsuspend($username)
{
# Add the Domain
$url = $this->host.'/interfaces/standard/user.asp';
$post = "action=EDIT".
"&UserAccNum=$username".
"&txtStatus=0";
$ret = $this->connect($url,$post, 5);
if($this->debug) echo "<br><br>$url?$post<br><textarea cols=100 rows=20>$ret</textarea>";
if($ret != false)
return true;
else
return false;
}
/*
* Delete account from helm
*/
function del($username)
{
# Add the Domain
$url = $this->host.'/interfaces/standard/user.asp';
$post = "action=DELETE".
"&UserAccNum=$username";
$ret = $this->connect($url,$post, 5);
if($this->debug) echo "<br><br>$url?$post<br><textarea cols=100 rows=20>$ret</textarea>";
if($ret == false)
return true;
else
return false;
}
/*
* Curl connect
*/
function connect($url,$post, $timeout=false)
{
if($this->ssl)
$url = 'https://'.$url;
else
$url = 'http://'.$url;
$ch = curl_init();
if($timeout != false)
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_COOKIEJAR, $this->cookie_path);
curl_setopt($ch, CURLOPT_COOKIEFILE, $this->cookie_path);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1 );
curl_setopt($ch, CURLOPT_HEADER, 1);
$data = curl_exec ($ch);
curl_close ($ch);
return $data;
}
}
?>