static function add($parent, $class, $param) { if (isset($param['external']) && isOn($param['external'])) { $param['nname'] = base64_encode($param['nname']); } return $param; }
static function getweb_usage($name, $customer_name, $oldtime, $newtime, $d) { global $gbl, $sgbl, $login, $ghtml; $web_home = "{$sgbl->__path_httpd_root}"; $log_path = "{$web_home}/{$name}/stats"; $processedir = "{$sgbl->__path_customer_root}/{$customer_name}/__processed_stats/"; lxfile_mkdir($processedir); $dir1 = "{$log_path}/"; $files = lscandir_without_dot($dir1); $total = 0; foreach ($files as $file) { if (!strstr($file, "gz")) { $total += self::getEachwebfilequota("{$dir1}/{$file}", $oldtime, $newtime); $stat = stat("{$dir1}/{$file}"); if ($stat['size'] >= 50 * 1024 * 1024) { if (isOn($d->remove_processed_stats)) { lxfile_rm("{$dir1}/{$file}"); } else { lxfile_mv("{$dir1}/{$file}", getNotexistingFile($processedir, $file)); } } } } return $total; }
static function add($parent, $class, $param) { if ($param['ttype'] === 'separator') { $sq = new Sqlite(null, 'ndskshortcut'); $separatorid = getIncrementedValueFromTable('ndskshortcut', 'separatorid'); $param['separatorid'] = $separatorid; $param['nname'] = "{$separatorid}___{$parent->getClName()}"; return $param; } if (isset($param['external']) && isOn($param['external'])) { $param['url'] = base64_encode($param['url']); } $param['nname'] = "{$param['url']}___{$parent->getClName()}"; return $param; }
static function add($parent, $class, $param) { if ($param['ttype'] === 'separator') { $sq = new Sqlite(null, 'ndskshortcut'); $separatorid = getIncrementedValueFromTable('ndskshortcut', 'separatorid'); $param['separatorid'] = $separatorid; $param['nname'] = "{$separatorid}___{$parent->getClName()}"; return $param; } $url = base64_decode($param['url']); if (isset($param['external']) && isOn($param['external'])) { $url = $param['url']; $param['url'] = base64_encode($param['url']); } if (trim($url) == '' || !isset($url)) { throw new lxexception('url_is_not_defined', 'nname'); } $param['nname'] = "{$param['url']}___{$parent->getClName()}"; return $param; }
function object_variable_quota($parent, $stuff, $variable) { global $gbl, $sgbl, $ghtml; $parent = $parent->getClientParentO(); $value = null; $this->fix_stuff_or_class($stuff, $variable, $class, $value); $descr = $this->get_classvar_description_after_overload($class, $variable); $cvar = $variable; if ($value === 'Unlimited') { $value = null; } $check = trim($value) !== "" ? 'no' : 'yes'; if (is_object($stuff)) { if (isOn($value)) { $chval = 'yes'; } else { $chval = 'no'; } } else { $cl = get_name_without_template($stuff); if (isOn(exec_class_method($cl, "getDefaultValue", $variable))) { $chval = 'yes'; } else { $chval = "no"; } } if (cse($variable, "_flag")) { $rvr = new FormVar(); $rvr->name = "frm_{$class}_c_priv_s_{$variable}_aaa_checkname"; $rvr->desc = $descr[2]; $rvr->type = "hidden"; $rvr->value = "off"; $ret[] = $rvr; if ($parent->priv->isOn($variable)) { $rvr = new FormVar(); $rvr->name = "frm_{$class}_c_priv_s_{$variable}_aaa_checked"; $rvr->desc = $descr[2]; $rvr->type = "checkbox"; $rvr->checked = $chval; $rvr->value = "on"; $ret[] = $rvr; } else { $rvr = new FormVar(); $rvr->name = "frm_{$class}_c_priv_s_{$variable}_aaa_checked"; $rvr->desc = $descr[2]; $rvr->type = "checkbox"; $rvr->checked = "disabled"; $rvr->value = "off"; $ret[] = $rvr; } return $ret; } if (is_unlimited($parent->priv->{$cvar})) { $rvr = new FormVar(); $rvr->name = "frm_{$class}_c_{$variable}"; $rvr->type = "checkboxwithtext"; $rvr->desc = $descr[2]; $rvr->mode = "or"; $text = new FormVar(); $text->name = "frm_{$class}_c_priv_s_{$variable}_aaa_quotaname"; $text->value = $value; $rvr->text = $text; $checkbox = new FormVar(); $checkbox->desc = "Unlimited"; $checkbox->name = "frm_{$class}_c_priv_s_{$variable}_aaa_unlimited"; $checkbox->checked = $check; $checkbox->value = "yes"; $rvr->checkbox = $checkbox; $ret[] = $rvr; $rvr = new FormVar(); $rvr->type = "hidden"; $rvr->value = "Unlimited"; $rvr->name = "frm_{$class}_c_priv_s_{$variable}_aaa_quotamax"; $ret[] = $rvr; } else { $quotaleft = $parent->getEffectivePriv($cvar, $class); if (isHardQuotaVariableInClass($class, $cvar)) { $quotaleft += $value; } $totalstring = null; $totalstring = "Total: " . $parent->priv->{$cvar}; if (cse($class, "template")) { $totalstring = null; $quotaleft = $parent->priv->{$cvar}; } if ($value === "") { $value = $quotaleft; } $rvr = new FormVar(); $rvr->type = "modify"; $rvr->texttype = "text"; $rvr->value = $value; $rvr->desc = $descr[2]; $rvr->name = "frm_{$class}_c_priv_s_{$variable}_aaa_quotaname"; $rvr->posttext = "Max {$quotaleft} {$totalstring}"; $rvr->format = "integer"; $ret[] = $rvr; $rvr = new FormVar(); $rvr->type = "hidden"; $rvr->value = $quotaleft; $rvr->name = "frm_{$class}_c_priv_s_{$variable}_aaa_quotamax"; $ret[] = $rvr; } return $ret; }
function getDownloadServer() { global $gbl, $sgbl, $login, $ghtml; static $local; $progname = $sgbl->__var_program_name; $maj = $sgbl->__ver_major_minor; if (!$local) { if (lfile_exists("__path_program_etc/.local_download")) { $local = 'on'; } else { $local = 'off'; } } if (isOn($local)) { $server = "http://192.168.1.100/download/{$progname}/{$maj}"; } else { $server = "http://download.lxcenter.org/download/{$progname}/{$maj}"; } /* if ($sgbl->dbg < 0) { $server = "http://download.lxlabs.com/download/$progname/$maj"; } */ return $server; }
function isQuotaGreaterThan($used, $priv) { if (is_unlimited($priv)) { return false; } if (is_unlimited($used)) { return true; } if (isOn($priv)) { return false; } if (isOn($used)) { return true; } return $used > $priv ? true : false; }
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; }
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; }
function check_priv($parent, $class, $pvar, $v) { if (cse($class, "template")) { foreach ($v as $pk => $pv) { $pvar->{$pk} = $pv; } return; } $parent = $parent->getClientParentO(); foreach ($v as $pk => $pv) { if (cse($pk, "_time")) { $pvar->{$pk} = $pv; continue; } if (!$parent->isQuotaVariable($pk) && !$parent->isDeadQuotaVariable($pk)) { continue; } if (cse($pk, "_flag")) { if ($parent->priv->isOn($pk)) { $pvar->{$pk} = $pv; continue; } if (isOn($pv)) { throw new lxException("Parent Doesnt Have Permission for {$pk}", "frm_{$class}_c_priv_s_{$pk}", null); } $pvar->{$pk} = $pv; continue; } if (cse($pk, "_num") || cse($pk, "_usage")) { $tmp = $pv; if ($tmp < 0) { throw new lxException('has_to_be_greater_than_zero', "priv_s_{$pk}"); } if (is_unlimited($parent->priv->{$pk})) { if (isHardQuotaVariableInClass($class, $pk)) { $parent->used->{$pk} -= $pvar->{$pk}; $parent->used->{$pk} += $pv; $parent->setUpdateSubaction(); } $pvar->{$pk} = $pv; continue; } if (is_unlimited($pv)) { $desc = getNthToken(get_v_descr($parent, $pk), 2); if (!$desc) { $desc = $pk; } throw new lxException("quota_exceeded", "priv_s_{$pk}", $desc); } if (isHardQuotaVariableInClass($class, $pk)) { $parent->used->{$pk} -= $pvar->{$pk}; } dprintr($parent->used); if ($tmp > $parent->getEffectivePriv($pk, $class)) { dprint("After throw"); $desc = getNthToken(get_v_descr($parent, $pk), 1); if (!$desc) { $desc = $pk; } throw new lxException("quota_exceeded", "priv_s_{$pk}", $desc); } dprint("No throw.. {$tmp} <br> "); if (isHardQuotaVariableInClass($class, $pk)) { $parent->used->{$pk} += $pv; $parent->setUpdateSubaction(); } $pvar->{$pk} = $pv; } } }
function isSelect() { if ($this->nname === "localhost") { return false; } if (isOn($this->createUsed())) { return false; } return $this->getParentO()->isAdmin(); }
function updateselfbackupconfig($param) { if (isOn($param['selfbackupparam_b-selfbackupflag'])) { $fn = ftp_connect($param['selfbackupparam_b-ftp_server']); $mylogin = ftp_login($fn, $param['selfbackupparam_b-rm_username'], $param['selfbackupparam_b-rm_password']); if (!$mylogin) { $p = error_get_last(); throw new lxException('could_not_connect_to_ftp_server', '', $p); } } return $param; }
function updateToggle_dot($param) { global $gbl, $sgbl, $login, $ghtml; $v = $gbl->getSessionV("frm_show_dot"); if (isOn($v)) { $v = 'off'; } else { $v = 'on'; } $gbl->setSessionV("frm_show_dot", $v); }
function generateDomainKey($dontwasflag) { global $gbl, $sgbl, $login, $ghtml; $mmail = $this->getObject('mmail'); $dns = $this->getObject('dns'); $domainkeyflag = db_get_value('servermail', $mmail->syncserver, 'domainkey_flag'); if (!isOn($domainkeyflag)) { $dns->RemoveDomainKey(); if ($dontwasflag) { return; } $dns->setUpdateSubaction('full_update'); $dns->was(); return; } $dkey = rl_exec_in_driver($mmail, 'mmail', 'generateDKey', array($this->nname)); if (!$dkey) { return; } $dns->addDomainKey($dkey); if ($dontwasflag) { return; } $dns->setUpdateSubaction('full_update'); $dns->was(); }
static function continueForm($parent, $class, $param, $continueaction) { global $gbl, $sgbl, $login, $ghtml; /* if(!eregi("^[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,5})$", $param['nname'])) { throw new lxException('invalid_domain_name', 'nname'); } */ if (!cse($param['nname'], ".vm")) { $param['nname'] .= ".vm"; } $param['nname'] = strtolower($param['nname']); if ($param['one_ipaddress_f']) { full_validate_ipaddress($param['one_ipaddress_f']); } /* if (!preg_match("/[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+]/i", $param['nname'])) { throw new lxException('domain_name_invalid', 'nname'); } */ 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', ''); } } if ($param['resourceplan_f'] === 'continue_without_plan') { $vlist['__c_subtitle_quota'] = 'Quota'; $qvlist = getQuotaListForClass('vps'); $vlist = lx_merge_good($vlist, $qvlist); $ret['param'] = $param; $ret['variable'] = $vlist; $ret['action'] = "Add"; } else { $template = getFromAny(array($login, $parent), 'resourceplan', $param['resourceplan_f']); $param['use_resourceplan_f'] = 'on'; if (!$template) { throw new lxexception("the_template_doesnt_exist", 'resourceplan_f', $param['resourceplan_f']); } $ret['action'] = 'addnow'; $ret['param'] = $param; return $ret; } return $ret; }
function updateFtp_conf($param) { $param['rm_username'] = fix_meta_character($param['rm_username']); if (is_star_password($param['rm_password'])) { $param['rm_password'] = $this->rm_password; } if (isOn($param['upload_to_ftp']) && !isOn($param['dont_verify_ftp_f'])) { $fn = ftp_connect($param['ftp_server']); $mylogin = ftp_login($fn, $param['rm_username'], $param['rm_password']); if (!$mylogin) { $p = error_get_last(); throw new lxException('could_not_connect_to_ftp_server', '', $p); } } return $param; }
function getCPToggleUrl(&$alist) { if ($this->isLogin()) { return; } if (isOn($this->cpstatus)) { $alist[] = "a=update&sa=cpdisable"; } else { $alist[] = "a=update&sa=cpenable"; } }
static function add($parent, $class, $param) { $ticketconfig = $parent->getObject('ticketconfig'); $cmlist = explode(',', $param['text_sent_to_cmlist']); $cl = $parent->getChildListFilter('L'); foreach ($cl as &$c) { $c = $parent->getChildNameFromDes($c); $child = $parent->getList($c); foreach ((array) $child as $q) { if (!array_search_bool('--all-children--', $cmlist)) { if (array_search_bool(self::getNameRep($q), $cmlist)) { $list[$q->getClName()] = $q; } } else { $list[$q->getClName()] = $q; } } } $param['text_sent_to_cmlist'] = implode(',', array_keys($list)); $param['text_sent_to_cmlist'] = "," . $param['text_sent_to_cmlist'] . ","; $param['ddate'] = time(); $param['nname'] = getIncrementedValueFromTable("smessage", "nname"); $param['made_by'] = $parent->getClName(); $param['text_readby_cmlist'] = ",,"; $param['name_made_by'] = $parent->nname; if (isOn($param['send_mail_f'])) { self::send_mail_to($list, $param); } return $param; }
static function continueFormClientFinish($parent, $class, $param, $continueaction) { $weblist = explode(',', $param['listpriv_s_webpserver_list']); //$vlist['dbtype_list'] = null; $vlist['ipaddress_list'] = array('Q', $parent->getIpaddress($weblist)); if (!isOn($param['priv_s_dns_manage_flag'])) { $dlist = $parent->getList('dnstemplate'); $nlist = get_namelist_from_objectlist($dlist); $vlist['dnstemplate_list'] = array('U', $nlist); } $ret['action'] = 'add'; $ret['variable'] = $vlist; $ret['param'] = $param; return $ret; }
function getToggleUrl(&$alist) { if ($this->isLogin() || $this->isAdmin()) { return; } if (isOn($this->status)) { $alist[] = "a=update&sa=disable"; } else { $alist[] = "a=update&sa=enable"; } }
function updateFtp_conf($param) { $param['rm_username'] = fix_meta_character($param['rm_username']); if (is_star_password($param['rm_password'])) { $param['rm_password'] = $this->rm_password; } if (isOn($param['upload_to_ftp']) && !isOn($param['dont_verify_ftp_f'])) { $fn = ftp_connect($param['ftp_server']); $mylogin = ftp_login($fn, $param['rm_username'], $param['rm_password']); if (!$mylogin) { $p = error_get_last(); throw new lxException('could_not_connect_to_ftp_server', '', $p); } } /* ftp_pasv($fn, true); $fp = lfopen($file, "r"); $ret = ftp_fput($fn, $uploadfilename, $fp, FTP_BINARY); if (!$ret) { throw new lxException('could_not_upload_file', '', $object->ftp_server); } */ return $param; }
function setFreshClam($nolog = null) { global $gbl, $sgbl, $login, $ghtml; // need this code until have kloxo database sync between master and slave if ($sgbl->is_this_slave()) { return; } if (!$nolog) { log_cleanup("Checking freshclam (virus scanner)"); } $path = "/var/qmail/supervise/clamd"; if (!isOn(db_get_value("servermail", "localhost", "virus_scan_flag")) || lxfile_exists("/var/cache/kloxo/kloxo-install-firsttime.flg")) { system("chkconfig freshclam off > /dev/null 2>&1"); system("/etc/init.d/freshclam stop >/dev/null 2>&1"); if (!$nolog) { log_cleanup("- Disabled freshclam service"); } system("svc -d {$path} {$path}/log > /dev/null 2>&1"); if (file_exists("{$path}/run.stop")) { lxfile_mv("{$path}/run.stop", "{$path}/down"); lxfile_mv("{$path}/log/run.stop", "{$path}/log/down"); } else { if (file_exists("{$path}/run")) { lxfile_mv("{$path}/run", "{$path}/down"); lxfile_mv("{$path}/log/run", "{$path}/log/down"); } } } else { system("chkconfig freshclam on > /dev/null 2>&1"); system("/etc/init.d/freshclam start >/dev/null 2>&1"); if (!$nolog) { log_cleanup("- Enabled freshclam service"); } lxfile_mv("{$path}/down", "{$path}/run"); lxfile_mv("{$path}/log/down", "{$path}/log/run"); system("svc -u {$path} {$path}/log > /dev/null 2>&1"); } // Issue #658 if (lxfile_exists("/usr/share/clamav/main.cld")) { lxfile_rm("/usr/share/clamav/main.cvd"); } }