Вход Регистрация
Файл: billing/_rootinc/da.class.inc.php
Строк: 199
<?

class DirectAdmin
{
    public 
$controller true;
    public 
$protocol null;
    public 
$host null;
    public 
$user=null;
    public 
$password null;
    public 
$error null;
    public 
$cookie null;
    public 
$fp=null;

    public function 
startup(&$controller) {
        
$this->controller =& $controller;
    }

    public function 
DirectAdmin($protocol,$host,$user,$password) {
        
$this->protocol=$protocol;
        
$this->host=$host;
        
$this->user=$user;
        
$this->password=$password;
        
$this->cookie="_da_".str_replace(" ","",microtime()).".cookie";

        
$this->logIn();
    }

    public function 
send($api,$query,$post) {
        global 
$full_home_path;

        if (
$post == "get") { $getAddon "?".$query; }

        
$this->fp curl_init(); 
        
curl_setopt($this->fpCURLOPT_URL$this->protocol."://".$this->host.":2222/".$api.$getAddon);
        
curl_setopt($this->fpCURL_HTTP_VERSION_1_11);
        if (
$post == "post") {
            
curl_setopt($this->fpCURLOPT_POST1);
            
curl_setopt($this->fpCURLOPT_POSTFIELDS$query);
        }
        
curl_setopt($this->fpCURLOPT_SSL_VERIFYPEER0);
        
curl_setopt($this->fpCURLOPT_SSL_VERIFYHOST0);
        
curl_setopt($this->fpCURLOPT_RETURNTRANSFER,1);
        
curl_setopt($this->fpCURLOPT_FAILONERROR0); 
        
curl_setopt($this->fpCURLOPT_COOKIEJAR$full_home_path."/_roottemp/".$this->cookie);
        
curl_setopt($this->fpCURLOPT_COOKIEFILE$full_home_path."/_roottemp/".$this->cookie);
        
curl_setopt($this->fpCURLOPT_TIMEOUT120);

        
$result curl_exec($this->fp);

        
curl_close($this->fp);  

        return 
$result;
    }

    public function 
logIn() {
        
$result $this->send("CMD_LOGIN","referer=/&username=$this->user&password=$this->password","post");

        if (
$this->checkLogin()) {
            return 
true
        } else {
            return 
false;
        }
    }

    public function 
checkLogin() {
        
$result $this->send("CMD_API_LOGIN_TEST","","post");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) { 
            return 
true
        } else { 
            
$this->error "logIn: Authentication error";
            return 
false
        }
    }

    public function 
logOut() {
        global 
$full_home_path;

        
$result $this->send("CMD_LOGOUT","","get");

        @
unlink($full_home_path."/_roottemp/".$this->cookie);
    }

    public function 
createAccount($login$email$pwd$domain$tarif$userip) {
        
$result $this->send("CMD_API_ACCOUNT_USER","action=create&add=Submit&username=$login&email=$email&passwd=$pwd&passwd2=$pwd&domain=$domain&package=$tarif&ip=$userip&notify=no","get");

        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "createAccount: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
createResellerAccount($login$email$pwd$domain$tarif) {
        
$result $this->send("CMD_API_ACCOUNT_USER","action=create&add=Submit&username=$login&email=$email&passwd=$pwd&passwd2=$pwd&domain=$domain&package=$tarif&ip=shared&notify=no","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "createAccount: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
get_user_info($name) {
        
$result $this->send("CMD_API_SHOW_USER_CONFIG","user=$name","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
$result;
        } else {
            
$this->error "get_user_info: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
is_suspended_user($name) {
        
$info=$this->get_user_info($name);
        return (
$info['suspended']=='no')?false:true;
    }

    public function 
is_active_user($name) {
        return !
$this->is_suspended_user($name);
    }

    public function 
suspend_user($name) {
#        if($this->is_suspended_user($name)) return false;

        
$result $this->send("CMD_API_SELECT_USERS","select0=$name&dosuspend=1","post");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "suspend_user: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
activate_user($name) {
#        if($this->is_active_user($name)) return false;

        
$result $this->send("CMD_API_SELECT_USERS","select0=$name&dounsuspend=1","post");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "activate_user: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
set_language($name,$lng) {
        
$result $this->send("CMD_API_MODIFY_USER","action=single&user=$name&lvalue=$lng&language=1","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "set_language: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
set_package_user($name,$package) {
        
$result $this->send("CMD_API_MODIFY_USER","action=package&user=$name&package=$package","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "set_package_user: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
add_domain_pointer($mainDomain,$domain) {
        
$result $this->send("CMD_API_DOMAIN_POINTER","domain=$mainDomain&action=add&from=$domain&alias=yes","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "add_domain_pointer: ".$result[error]." ".$result[details];
            return 
false;
        }

    }

    public function 
set_password($name,$pwd) {
        
$result $this->send("CMD_API_USER_PASSWD","username=$name&passwd=$pwd&passwd2=$pwd","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "set_password: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
get_users() {
        
$result $this->send("CMD_API_SHOW_USERS","","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
$result['list'];
        } else {
            
$this->error "get_users: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
get_packages() {
        
$result $this->send("CMD_API_PACKAGES_USER","","get");
        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
$result['list'];
        } else {
            
$this->error "get_packages: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
delete_user($name) {
        
$result $this->send("CMD_API_SELECT_USERS","select0=$name&delete=yes&confirmed=Confirm","post");

        
$result $this->parseAPIresult($result);

        if (!
$result[error]) {
            return 
true;
        } else {
            
$this->error "delete_user: ".$result[error]." ".$result[details];
            return 
false;
        }
    }

    public function 
parseAPIresult($results) {
        if (!
preg_match("/<html>/iu",$results)) {
            
$results mb_split("&",$results);
            
$result_array = array();
            while (list(
$i,$result) = @each($results)) {
                
$result mb_split("=",$result);
                
$param $result[0];
                
$value $result[1];

                if (
preg_match("/[]$/u",$param)) {
                    
$param preg_replace("/[]$/u","",$param);
                    
$result_array[$param][] = $value;
                } else {
                    
$result_array[$param] = $value;
                }
            }
            return 
$result_array;
        }
    }
}
?>
Онлайн: 1
Реклама