Пример #1
0
 private function _modifyReseller(Server_Account $a)
 {
     if (!$this->_checkCommand('modify-reseller')) {
         throw new Server_Exception('Modify reseller command is only available in Virtualmin PRO version');
     }
     $p = $a->getPackage();
     $params = array('name' => $a->getUsername(), 'pass' => $a->getPassword(), 'email' => $a->getEmail(), 'max-doms' => $p->getMaxDomains() == 'unlimited' ? 'UNLIMITED' : $p->getMaxDomains(), 'max-aliasdoms' => $p->getMaxDomains() == 'unlimited' ? 'UNLIMITED' : $p->getMaxDomains(), 'max-realdoms' => $p->getMaxDomains() == 'unlimited' ? 'UNLIMITED' : $p->getMaxDomains(), 'max-quota' => $p->getQuota() == 'unlimited' ? 'UNLIMITED' : (int) $p->getQuota() * 1024, 'max-mailboxes' => (int) $p->getPop(), 'max-aliases' => (int) $p->getMaxDomains() ? $p->getMaxDomains() : 1, 'max-dbs' => $p->getMaxDb() == 'unlimited' ? 'UNLIMITED' : (int) $p->getMaxDb(), 'max-bw' => $p->getBandwidth() == 'unlimited' ? 'UNLIMITED' : (int) $p->getBandwidth() * 1024 * 1024, 'allow1' => 'dns', 'allow2' => 'web', 'allow3' => 'webmin', 'allow4' => 'dir', 'allow5' => 'virt', 'nameserver1' => $a->getNs1(), 'nameserver2' => $a->getNs2(), 'nameserver3' => $a->getNs3(), 'nameserver4' => $a->getNs4());
     if ($p->getMaxPop()) {
         $params['allow6'] = 'mail';
     }
     if ($p->getHasSsl()) {
         $params['allow7'] = 'ssl';
     }
     if ($p->getMaxFtp() > 0) {
         $params['allow8'] = 'ftp';
     }
     if ($p->getHasSpamFilter()) {
         $params['allow9'] = 'spam';
     }
     if ($p->getMaxSql() > 0) {
         $params['allow10'] = 'mysql';
     }
     $response = $this->_makeRequest('modify-reseller', $params);
     if (isset($response['status']) && $response['status'] == 'success') {
         return true;
     } else {
         throw new Server_Exception('Failed to create reseller\'s account');
     }
     return false;
 }
Пример #2
0
 private function _modifyClient(Server_Account $a)
 {
     if ($a->getReseller()) {
         $type = 'reseller';
         $genInfo = 'gen-info';
     } else {
         $type = 'client';
         $genInfo = 'gen_info';
     }
     $client = $a->getClient();
     $p = $a->getPackage();
     $params = array($type => array('set' => array('filter' => array('login' => $a->getUsername()), 'values' => array($genInfo => array('cname' => $client->getCompany(), 'pname' => $client->getFullname(), 'login' => $a->getUsername(), 'passwd' => $a->getPassword(), 'status' => 0, 'phone' => $client->getTelephone(), 'fax' => $client->getFax(), 'email' => $a->getEmail(), 'address' => $client->getAddress1(), 'city' => $client->getCity(), 'state' => $client->getState(), 'pcode' => $client->getZip(), 'country' => $client->getCountry())))));
     $response = $this->_makeRequest($params);
     if (isset($response->system->status) && $response->system->status == 'error') {
         throw new Server_Exception('Plesk error: ' . $response->system->errcode . ' - ' . $response->system->errtext);
     }
     if (isset($response->{$type}->set->result->status) && $response->{$type}->set->result->status == 'error') {
         throw new Server_Exception('Plesk error: ' . $response->{$type}->set->result->errcode . ' - ' . $response->{$type}->set->result->errtext);
     }
     if (isset($response->{$type}->set->result->status) && $response->{$type}->set->result->status == 'ok') {
         return $response->{$type}->set->result->id;
     }
     return 0;
 }
Пример #3
0
 private function createClient(Server_Account &$a, $type)
 {
     $client = $a->getClient();
     $p = $a->getPackage();
     $params = array('server_id' => $this->getServerId(), 'company_name' => $client->getCompany(), 'contact_name' => $client->getFullName(), 'username' => $a->getUsername(), 'password' => $a->getPassword(), 'language' => $p->getCustomValue('languge'), 'usertheme' => $p->getCustomValue('theme'), 'street' => $client->getStreet(), 'zip' => $client->getZip(), 'city' => $client->getCity(), 'state' => $client->getState(), 'country' => $client->getCountry(), 'telephone' => $client->getTelephone(), 'mobile' => $client->getTelephone(), 'fax' => $client->getTelephone(), 'email' => $a->getEmail(), 'internet' => $a->getWww(), 'icq' => '', 'notes' => $a->getNote(), 'template_master' => '0', 'template_additional' => '', 'default_mailserver' => '1', 'limit_maildomain' => '1', 'limit_mailbox' => '-1', 'limit_mailalias' => '-1', 'limit_mailforward' => '-1', 'limit_mailcatchall' => '-1', 'limit_mailrouting' => '-1', 'limit_mailfilter' => '-1', 'limit_fetchmail' => '-1', 'limit_mailquota' => '-1', 'limit_spamfilter_wblist' => '-1', 'limit_spamfilter_user' => '-1', 'limit_spamfilter_policy' => '-1', 'default_webserver' => '1', 'limit_web_domain' => '-1', 'web_php_options' => "SuPHP", 'limit_web_aliasdomain' => '-1', 'limit_web_subdomain' => '-1', 'limit_ftp_user' => '-1', 'limit_shell_user' => '-1', 'ssh_chroot' => 'None', 'default_dnsserver' => '1', 'limit_dns_zone' => '-1', 'limit_dns_record' => '-1', 'limit_client' => $type, 'default_dbserver' => '1', 'limit_database' => '-1', 'limit_cron' => '0', 'limit_cron_type' => '', 'limit_cron_frequency' => '-1');
     $action = 'client_add';
     $result = $this->_request($action, $params);
     return $result;
 }