Friday, February 1, 2013

Create Web User in Plesk panel using PHP


Following class file will help you:
class Webuser
{
var $host = 'Hostname';
var $login = 'userid';
var $password = 'password';

public function sendRequest($packet='')
{
$host = $this->host;
  $login = $this->login;
  $password = $this->password;

$curl = curl_init();
      curl_setopt($curl, CURLOPT_URL, "https://{$host}:8443/enterprise/control/agent.php");
      curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($curl, CURLOPT_POST,           true);
      curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
      curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
      curl_setopt($curl, CURLOPT_HTTPHEADER,
              array("HTTP_AUTH_LOGIN: {$login}",
                    "HTTP_AUTH_PASSWD: {$password}",
                    "HTTP_PRETTY_PRINT: TRUE",
                    "Content-Type: text/xml")
      );

  curl_setopt($curl, CURLOPT_POSTFIELDS, $packet);
      $result = curl_exec($curl);
      if (curl_errno($curl)) {
              $errmsg  = curl_error($curl);
              $errcode = curl_errno($curl);
              curl_close($curl);
             
      }
      curl_close($curl);
$xml = new SimpleXMLElement($result);
return $xml;
}


public function createUser($domainid='',$username='',$password='')
{
$xmldoc = new DomDocument('1.0', 'UTF-8');
      $xmldoc->formatOutput = true;
      $packet = $xmldoc->createElement('packet');
      $packet->setAttribute('version', '1.6.0.2');
      $xmldoc->appendChild($packet);

$webuser = $xmldoc->createElement('webuser');
  $packet->appendChild($webuser);

$add = $xmldoc->createElement('add');
  $webuser->appendChild($add);

  $site_id = $xmldoc->createElement('domain-id',$domainid);
  $add->appendChild($site_id);

  $login = $xmldoc->createElement('login',$username);
  $add->appendChild($login);
 
  $password = $xmldoc->createElement('password',$password);
  $add->appendChild($password);
   
$xmloutput = $xmldoc->saveXML();
return $this->sendRequest($xmloutput);
 
}

public function deleteUser($username='')
{
$xmldoc = new DomDocument('1.0', 'UTF-8');
        $xmldoc->formatOutput = true;
        $packet = $xmldoc->createElement('packet');
        $packet->setAttribute('version', '1.6.0.2');
        $xmldoc->appendChild($packet);

$webuser = $xmldoc->createElement('webuser');
   $packet->appendChild($webuser);

$del = $xmldoc->createElement('del');
  $webuser->appendChild($del);  
     
  $filter = $xmldoc->createElement('filter');
  $del->appendChild($filter);
 
  $login = $xmldoc->createElement('login',$username);
  $filter->appendChild($login);  
     
  $xmloutput = $xmldoc->saveXML();
return $this->sendRequest($xmloutput);

}

public function getError(SimpleXMLElement $result)
{
$err = '';
if(isset($result->status) && (string)$result->status == 'error'){ $err = $result->errtext; }
return $err;
}
}

$siteid= ''
$username = '';
$password = '';

$obj = new Webuser();
$response = $obj->createUser($siteId,$userName,$password);
if($response->webuser->add->result->status=='ok')
{
echo json_encode(array('status'=>1,'msg'=>'success'));
}
else
{
$msg= $response->webuser->add->result->errtext;
echo json_encode(array('status'=>0,'msg'=>$msg));
}

Bind Some Event to Element and trigger that function when click the element

Scenario: Suppose if we used same click event function in various web pages. if you want do some logic some page button for that need to re...