Exemplo n.º 1
0
 function updateform($subaction, $param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     switch ($subaction) {
         case "installatron":
             $vlist['__v_button'] = array();
             return $vlist;
         case "ostemplatelist":
             getResourceOstemplate($vlist, 'all');
             $vlist['__v_updateall_button'] = array();
             return $vlist;
         case "createinvoice_m":
             $vlist['month'] = null;
             return $vlist;
         case "createinvoice_s":
             $vlist['month'] = array('s', $this->getInvoiceMonthList());
             return $vlist;
         case "search_engine":
             $vlist['se_url'] = array('M', "http://");
             $vlist['se_email'] = null;
             return $vlist;
         case "cron_mailto":
             $vlist['cron_mailto'] = null;
             return $vlist;
         case "default_domain":
             $vlist['default_domain'] = array('s', add_disabled(get_namelist_from_objectlist($this->getList('domain'))));
             return $vlist;
         case "shell_access":
             $res[] = "/bin/bash";
             $res[] = "/usr/bin/lxjailshell";
             $res = add_disabled($res);
             $vlist['nname'] = array('M', null);
             $vlist['disable_system_flag'] = null;
             $vlist['shell'] = array('s', $res);
             $vlist['__v_updateall_button'] = array();
             return $vlist;
         case "generate_csr":
             include "lib/countrycode.inc";
             foreach ($gl_country_code as $key => $name) {
                 $temp[$key] = $name;
             }
             $s = new sslcert(null, null, null);
             $this->ssl_data_b = new ssl_data_b(null, null, null);
             $vlist['contactemail'] = array('M', null);
             $vlist["ssl_data_b_s_commonName_r"] = null;
             $vlist["ssl_data_b_s_emailAddress_r"] = null;
             $vlist["ssl_data_b_s_countryName_r"] = array('A', $temp);
             $vlist["ssl_data_b_s_stateOrProvinceName_r"] = null;
             $vlist["ssl_data_b_s_localityName_r"] = null;
             $vlist["ssl_data_b_s_organizationName_r"] = null;
             $vlist["ssl_data_b_s_organizationalUnitName_r"] = null;
             return $vlist;
         case "domainpserver":
             if ($this->isAdmin()) {
                 $parent = $this;
             } else {
                 $parent = $this->getParentO();
             }
             self::getDomainServerVlist($parent, $this, $vlist);
             return $vlist;
         case "forcedeletepserver":
             if_not_admin_complain_and_exit();
             $list = get_namelist_from_objectlist($this->getList('pserver'));
             $vlist['pserver_delete_f'] = array('s', array_remove($list, "localhost"));
             return $vlist;
         case "deleteorphanedvps":
             $sq = new Sqlite(null, 'vps');
             $slist = get_namelist_from_objectlist($this->getList('pserver'));
             $res = $sq->getTable(array('nname', 'syncserver', 'parent_clname'));
             $list = null;
             foreach ($res as $r) {
                 if (!array_search_bool($r['syncserver'], $slist)) {
                     $list[$r['nname']] = "{$r['nname']} ({$r['syncserver']}) (orphaned)";
                 }
             }
             if ($list) {
                 $vlist['vps_delete_f'] = array('A', $list);
             } else {
                 $vlist['vps_delete_f'] = array('M', 'No Orphaned vm');
             }
             return $vlist;
         case "multivpscreate":
             $vlist['vps_basename_f'] = null;
             $vlist['vps_admin_password_f'] = null;
             $vlist['vps_count_f'] = null;
             $vlist['vps_template_name_f'] = array('s', get_namelist_from_objectlist($this->getList('vpstemplate')));
             return $vlist;
         case "disable_url":
             $vlist['disable_url'] = array('m', array('pretext' => 'http://'));
             return $vlist;
         case "message":
             $vlist['wall_from_f'] = array('M', $login->nname);
             $vlist['send_to_f'] = array('M', $this->nname);
             $vlist['wall_subject_f'] = null;
             $vlist['wall_message_f'] = null;
             $vlist['__v_button'] = 'Send';
             return $vlist;
         case "skeleton":
             $vlist['skeletonarchive'] = array('M', null);
             $vlist['skeletonarchive_f'] = null;
             return $vlist;
         case "wall":
             $vlist['wall_from_f'] = array('M', $this->nname);
             //Can't do this. If he has 10000 client, this itelf will hang the machine.
             //$vlist['send_to_f'] = array('M', $namlist);
             $vlist['wall_subject_f'] = null;
             $vlist['wall_message_f'] = null;
             $vlist['__v_button'] = 'Send';
             return $vlist;
         case "dnstemplatelist":
             $parent = $this->getParentO();
             $nlist = domain::getDnsTemplateList($parent);
             $vlist['dnstemplate_list'] = array('U', $nlist);
             $vlist['__v_updateall_button'] = array();
             return $vlist;
         case "information":
             $vlist['nname'] = array('M', $this->nname);
             if ($this->isAdmin()) {
                 $gen = $login->getObject('general');
                 $this->disable_admin = $gen->disable_admin;
                 $vlist['disable_admin'] = null;
             }
             if ($this->isLogin()) {
                 $vlist['cttype'] = array('M', $this->cttype);
             } else {
                 $parent = $this->getParentO();
                 $res = null;
                 if (check_if_many_server()) {
                     $ctlist = array('reseller', 'customer', 'wholesale');
                 } else {
                     $ctlist = array('reseller', 'customer');
                 }
                 foreach ($ctlist as $v) {
                     if ($parent->isGte($v)) {
                         continue;
                     }
                     $res[] = $v;
                 }
                 if ($res) {
                     $vlist['cttype'] = array('s', $res);
                 } else {
                     $vlist['cttype'] = array('M', $this->cttype);
                 }
             }
             $vlist['ddate'] = array('M', @date('d-m-Y', $this->ddate));
             if (!$this->isAdmin()) {
                 $vlist['parent_name_f'] = array('M', $this->getParentName());
             }
             $vlist['contactemail'] = "";
             if (!$this->isLogin()) {
                 $vlist['text_comment'] = null;
             }
             return $vlist;
         case "license":
             $lic = $login->getObject('license')->licensecom_b;
             if ($login->isAdmin()) {
                 $vlist['lic_pserver_num_f'] = array('M', $lic->lic_pserver_num);
                 $vlist['lic_client_num_f'] = array('M', $lic->lic_client_num);
                 $vlist['lic_maindomain_num_f'] = array('M', $lic->lic_maindomain_num);
             } else {
                 $vlist['lic_node_num_f'] = array('M', $lic->node_num);
             }
             $vlist['lic_live_support_f'] = array('M', $lic->lic_live_support);
             //$vlist['lic_ipaddress_f'] = array('M', $lic->lic_ipaddress);
             $vlist['lic_client_f'] = array('M', $lic->lic_client);
             //$vlist['lic_current_f'] = array('t', lfile_get_contents('__path_program_etc/license.txt'));
             $vlist['license_upload_f'] = null;
             return $vlist;
         case "ipaddress":
             $parent = $this->getParentO();
             if ($this->isLogin() || !$this->isRightParent()) {
                 $vlist['ipaddress_list'] = array('M', $this->getIpaddress($this->listpriv->webpserver_list));
                 $vlist['__v_button'] = array();
             } else {
                 if (check_if_many_server()) {
                     dprintr($this->listpriv->webpserver_list);
                     $iplist = $parent->getIpaddress($this->listpriv->webpserver_list);
                 } else {
                     $iplist = $parent->getIpaddress(array('localhost'));
                 }
                 dprintr($iplist);
                 $vlist['ipaddress_list'] = array('Q', $iplist);
             }
             return $vlist;
         case "pserver_s":
             $parent = $this->getParentO();
             $list = null;
             $serverlist = client::getPserverListPriv();
             if ($this->isLogin() || !$this->isRightParent()) {
                 foreach ($serverlist as $s) {
                     $slist = "{$s}_list";
                     $vlist["{$s}_list"] = array('M', $this->listpriv->{$slist});
                 }
                 $vlist['__v_button'] = array();
                 //$vlist['dbtype_list'] = array('M', $this->listpriv->dbtype_list);
                 return $vlist;
             } else {
                 $vlist['server_detail_f'] = null;
                 foreach ($serverlist as $s) {
                     $slist = "{$s}_list";
                     // Hack.. Actually, admin's listpriv should be empty so that the __get inside the listpriv will get automatically called.
                     if ($parent->isAdmin()) {
                         unset($parent->listpriv->{$slist});
                     }
                     $vlist["{$s}_list"] = null;
                     $list = lx_array_merge(array($list, $parent->getServerList(strtilfirst($s, "pserver"))));
                 }
                 $sinfo = pservercore::createServerInfo($list);
                 $sinfo = get_warning_for_server_info($parent, $sinfo);
                 $vlist['server_detail_f'] = array('M', $sinfo);
                 //$vlist['dbtype_list'] = null;
                 return $vlist;
             }
         case "description":
             $vlist['description'] = null;
             //$vlist['share_status'] = null;
             if (!$this->isRightParent()) {
                 $this->convertToUnmodifiable($vlist);
             }
             return $vlist;
     }
     return parent::updateform($subaction, $param);
 }
Exemplo n.º 2
0
 static function continueForm($parent, $class, $param, $continueaction)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $vlist = null;
     self::validate_client_name($param['nname']);
     $param['nname'] = trim($param['nname']);
     if ($continueaction === 'server') {
         if (isOn($param['send_welcome_f'])) {
             if (!$param['contactemail']) {
                 throw new lxexception("sending_welcome_needs_contactemail", array('contactemail', 'send_welcome_f'), '');
             }
             if (!validate_email($param['contactemail'])) {
                 throw new lxexception("contactemail_is_not_valid_email_address", 'contactemail', '');
             }
         }
         dprintr($param);
         if ($param['resourceplan_f'] !== 'continue_without_plan') {
             $param['use_resourceplan_f'] = 'On';
             $ret['param'] = $param;
             $ret['action'] = 'addnow';
             return $ret;
         }
         $array = client::getPserverListPriv();
         foreach ((array) $array as $a) {
             $v = "{$a}_list";
             if (!$parent->listpriv->{$v}) {
                 //throw new lxException ("no_server_pool", $v);
             }
             $param["listpriv_s_{$a}_list"] = $parent->listpriv->{$v};
         }
         // This is a hack... This should now only happen in kloxo and not in hypervm.
         if (isset($param['listpriv_s_webpserver_list'])) {
             $weblist = $param['listpriv_s_webpserver_list'];
             $param['listpriv_s_ipaddress_list'] = $parent->getIpaddress($weblist);
             $nlist = domain::getDnsTemplateList($parent);
             $param['dnstemplate_list'] = $nlist;
         }
         $qvlist = getQuotaListForClass('client', $param);
         $vlist = lx_merge_good($vlist, $qvlist);
         $ret['action'] = "add";
         //$ret['continueaction'] = 'server';
         $ret['variable'] = $vlist;
         $ret['param'] = $param;
     }
     return $ret;
 }
Exemplo n.º 3
0
 static function continueForm($parent, $class, $param, $continueaction)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $vlist = null;
     self::validate_client_name($param['nname']);
     // and issue #657 - Client user names with "__" are displayed with missing end
     if (stristr($param['nname'], '__')) {
         throw new lxexception("{$param['nname']}_use_double_underscore", 'nname');
     }
     // also check if /home/<client> exists --> prevent use like 'httpd' as client
     /*
     	if (lxfile_exists("/home/{$param['nname']}")) {
     		throw new lxexception("{$param['nname']}_dir_exists_under_home_dir", 'nname');
     
     	}
     */
     $reserved = array('apache', 'lighttpd', 'nginx', 'httpd', 'kloxo', 'lxadmin', 'lxlabs', 'lxcenter', 'nouser', 'tinydns', 'axfrdns', 'dnscache', 'dnslog', 'bind', 'named');
     foreach ($reserved as $r) {
         if ($param['nname'] === $r) {
             throw new lxexception("{$param['nname']}_dir_as_reserved_under_home_dir", 'nname');
         }
     }
     $param['nname'] = trim($param['nname']);
     if ($continueaction === 'server') {
         if (isOn($param['send_welcome_f'])) {
             if (!$param['contactemail']) {
                 throw new lxexception("sending_welcome_needs_contactemail", array('contactemail', 'send_welcome_f'), '');
             }
             // accept to more contact mail - http://forum.lxcenter.org/index.php?t=msg&goto=89118
             $contact = implode(",", str_replace(" ", "", $param['contactemail']));
             foreach ($contact as $c) {
                 if (!validate_email($c)) {
                     throw new lxexception("contactemail_is_not_valid_email_address", 'contactemail', '');
                 }
             }
         }
         dprintr($param);
         if ($param['resourceplan_f'] !== 'continue_without_plan') {
             $param['use_resourceplan_f'] = 'On';
             $ret['param'] = $param;
             $ret['action'] = 'addnow';
             return $ret;
         }
         $array = client::getPserverListPriv();
         foreach ((array) $array as $a) {
             $v = "{$a}_list";
             if (!$parent->listpriv->{$v}) {
                 //throw new lxException ("no_server_pool", $v);
             }
             $param["listpriv_s_{$a}_list"] = $parent->listpriv->{$v};
         }
         // This is a hack... This should now only happen in kloxo and not in hypervm.
         if (isset($param['listpriv_s_webpserver_list'])) {
             $weblist = $param['listpriv_s_webpserver_list'];
             $param['listpriv_s_ipaddress_list'] = $parent->getIpaddress($weblist);
             $nlist = domain::getDnsTemplateList($parent);
             $param['dnstemplate_list'] = $nlist;
         }
         $qvlist = getQuotaListForClass('client', $param);
         $vlist = lx_merge_good($vlist, $qvlist);
         $ret['action'] = "add";
         //$ret['continueaction'] = 'server';
         $ret['variable'] = $vlist;
         $ret['param'] = $param;
     }
     return $ret;
 }
Exemplo n.º 4
0
 function updateform($subaction, $param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $parent = $this->getParentO();
     switch ($subaction) {
         case "copyplan":
             $clist = get_namelist_from_objectlist($parent->getList('client'));
             $clist[] = $parent->nname;
             $vlist['copy_clientname_f'] = array('s', $clist);
             $vlist['realname_f'] = array('m', $this->realname);
             return $vlist;
         case "account":
             $total = $this->getAccountList();
             $total = lx_array_merge($total);
             $vlist['account'] = array('M', implode(" ", $total));
             $vlist['__v_button'] = array();
             return $vlist;
         case "limit_s":
         case "limit":
             $vlist = getQuotaListForClass('client');
             $vlist['__m_message_pre'] = "resourceplan_change_pre";
             // This is patently wrong. In update, the object is inititialized properly and we are suppsed to get the quota for the specific type of object and not for the class.... Changing it to $this.
             $sgbl->method = 'post';
             return $vlist;
         case "dnstemplatelist":
             $parent = $this->getParentO();
             $nlist = domainBase::getDnsTemplateList($parent);
             $vlist['dnstemplate_list'] = array('U', $nlist);
             return $vlist;
         case "pserver_s":
             $parent = $this->getParentO();
             $list = null;
             $serverlist = client::getPserverListPriv();
             if ($this->isLogin() || !$this->isRightParent()) {
                 foreach ($serverlist as $s) {
                     $slist = "{$s}_list";
                     $vlist["{$s}_list"] = array('M', $this->listpriv->{$slist});
                 }
                 $vlist['__v_button'] = array();
                 //$vlist['dbtype_list'] = array('M', $this->listpriv->dbtype_list);
                 return $vlist;
             } else {
                 $vlist['server_detail_f'] = null;
                 foreach ($serverlist as $s) {
                     $slist = "{$s}_list";
                     $vlist["{$s}_list"] = null;
                     if ($parent->isAdmin()) {
                         $plist = $parent->getServerList(strtilfirst($s, "pserver"));
                     } else {
                         $plist = $parent->listpriv->{$slist};
                     }
                     if ($parent->isAdmin()) {
                         unset($parent->listpriv->{$slist});
                     }
                     $list = lx_array_merge(array($list, $plist));
                 }
                 $vlist['server_detail_f'] = array('M', pservercore::createServerInfo($list));
                 //$vlist['dbtype_list'] = null;
                 return $vlist;
             }
         case "ipaddress":
             dprintr($this->listpriv->ipaddress_list);
             $parent = $this->getParentO();
             if ($this->isLogin() || !$this->isRightParent()) {
                 $vlist['ipaddress_list'] = array('M', $this->getIpaddress($this->listpriv->webpserver_list));
                 $vlist['__v_button'] = array();
             } else {
                 if (check_if_many_server()) {
                     dprintr($this->listpriv->webpserver_list);
                     $iplist = $parent->getIpaddress($this->listpriv->webpserver_list);
                 } else {
                     $iplist = $parent->getIpaddress(array('localhost'));
                 }
                 dprintr($iplist);
                 $vlist['ipaddress_list'] = array('Q', $iplist);
             }
             return $vlist;
         case "description":
             if ($this->islogin()) {
                 throw new lxException('you_cannot_set_your_own_limit', '');
             }
             $vlist['disable_per'] = array('s', array('off', '95', '100', '110', '120', '130'));
             if ($sgbl->isHyperVm() && $sgbl->isDebug()) {
                 //$vlist['centralbackup_flag'] = null;
             }
             $vlist['description'] = null;
             //$vlist['share_status'] = null;
             if (!$this->isRightParent()) {
                 $this->convertToUnmodifiable($vlist);
             }
             return $vlist;
         case "changerealname":
             $vlist['realname'] = null;
             return $vlist;
         case "ostemplatelist":
             getResourceOstemplate($vlist);
             return $vlist;
     }
     return parent::updateform($subaction, $param);
 }