Example #1
0
 static function initThisList($parent, $class)
 {
     $parent->setUpdateSubaction('getBeancounter');
     $res = rl_exec_set($parent->__masterserver, $parent->syncserver, $parent);
     $parent->dbaction = 'clean';
     if ($res) {
         foreach ($res as &$__rt) {
             $__rt['syncserver'] = $parent->syncserver;
             $__rt['parent_clname'] = createParentName("vps", $parent->nname);
         }
     }
     dprint($res);
     return $res;
 }
Example #2
0
 static function initThisList($parent, $class)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $res = rl_exec_in_driver($parent, 'listSubscribe', "readSubscribeList", array($parent->nname));
     // Creat the extra varibles.. That are normally stgored in the db.
     if ($res) {
         foreach ($res as &$__rt) {
             $__rt['nname'] = "{$__rt['address']}___{$parent->getClName()}";
             $__rt['syncserver'] = $parent->syncserver;
             $__rt['parent_clname'] = createParentName("mailinglist", $parent->nname);
         }
     }
     return $res;
 }
Example #3
0
 static function createWelcomeMessage()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $name = ucfirst($sgbl->__var_program_name);
     $param['made_by'] = createParentName('pserver', $name);
     $param['text_sent_to_cmlist'] = "," . createParentName('client', 'admin') . ",";
     $param['ddate'] = time();
     $param['subject'] = "Welcome to {$name}";
     $param['text_description'] = "Welcome to {$name}";
     $ticketconfig = $login->getObject('ticketconfig');
     $param['nname'] = $ticketconfig->getAndIncrementTicket();
     $param['unread_flag'] = 'on';
     $smessage = new Smessage(null, null, $param['nname']);
     $smessage->create($param);
     $smessage->write();
 }
Example #4
0
 function postAdd()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $this->dbaction = 'add';
     $this->findOsDetails();
     if ($this->ostype === 'windows') {
         $this->username = '******';
     } else {
         $this->username = "******";
     }
     if ($sgbl->isHyperVm()) {
         $rlist = array('vps');
     } else {
         if ($this->ostype === 'windows') {
             $rlist = array('web', 'mssqldb');
         } else {
             $rlist = array('web', 'mmail', 'dns', 'mysqldb');
         }
     }
     foreach ($rlist as $l) {
         $role = new psrole_a(null, null, $l);
         $this->psrole_a[$l] = $role;
     }
     $this->ddate = time();
     $this->getandWriteModuleDriver();
     //$this->fixDatabaseServers();
     $this->getandWriteService();
     $this->parent_clname = createParentName('client', 'admin');
     if ($this->ostype !== 'windows') {
         $this->AddMysqlDbadmin();
     }
     // There's a problem here. If the server is added for the second time, the ipaddress would be present,
     // and this would lead to a 'was' happening inside here, which would turn the dbaction to clean and
     // then the actual was wouldn't happen.
     $this->getandwriteipaddress();
 }
Example #5
0
 static function initThisListRule($parent, $class)
 {
     if ($parent->isAdmin()) {
         return "__v_table";
     }
     return array('parent_clname', '=', "'" . createParentName($parent->getClass(), $parent->nname) . "'");
 }
Example #6
0
 public static function createVpsObject($servername, $input)
 {
     $name = "{$input['name']}.vm";
     $vpsobject = new Vps(null, $servername, $name);
     $vpsobject->parent_clname = createParentName('client', 'admin');
     $vpsobject->priv = new priv(null, null, $vpsobject->nname);
     $vpsobject->priv->__parent_o = $vpsobject;
     $vpsobject->used = new used(null, null, $vpsobject->nname);
     $vpsobject->used->__parent_o = $vpsobject;
     $vpsobject->vpsipaddress_a = array();
     $vpsobject->vpsid = '-';
     $vpsobject->password = crypt($name);
     $vpsobject->cpstatus = 'on';
     $vpsobject->status = 'on';
     $vpsobject->ttype = 'xen';
     $vpsobject->iid = $name;
     $vpsobject->ddate = time();
     if ($input['type'] === 'file') {
         $vpsobject->corerootdir = $input['location'];
     } else {
         $vpsobject->corerootdir = "lvm:{$input['location']}";
     }
     $vpsobject->maindiskname = $input['maindiskname'];
     $vpsobject->swapdiskname = $input['swapdiskname'];
     if ($input['type'] === 'file') {
         $vpsobject->maindisk = "{$vpsobject->corerootdir}/{$vpsobject->maindiskname}";
         $vpsobject->swapdisk = "{$vpsobject->corerootdir}/{$vpsobject->swapdiskname}";
     } else {
         $vgname = $vpsobject->corerootdir;
         $vgname = fix_vgname($vgname);
         $vpsobject->maindisk = "/dev/{$vgname}/{$vpsobject->maindiskname}";
         $vpsobject->swapdisk = "/dev/{$vgname}/{$vpsobject->swapdiskname}";
     }
     if (isset($input['gateway'])) {
         $vpsobject->networkgateway = $input['gateway'];
     }
     if (isset($input['netmask'])) {
         $vpsobject->networknetmask = $input['netmask'];
     }
     $vpsobject->priv->realmem_usage = $input['memory'];
     $vpsobject->priv->disk_usage = lvm_disksize($vpsobject->maindisk);
     $vpsobject->priv->swap_usage = lvm_disksize($vpsobject->swapdisk);
     $vpsobject->priv->backup_flag = 'on';
     $vpsobject->ostemplate = 'unknown';
     if (isset($input['ipaddress'])) {
         self::importIpaddress($vpsobject, $input['ipaddress']);
     }
     return $vpsobject;
 }
Example #7
0
 function createExtraVariables()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $this->fixphpIniFlag();
     $gen = $login->getObject('general')->generalmisc_b;
     if (!$this->getParentO()->is__table('pserver')) {
         $ob = new phpini(null, 'localhost', createParentName('pserver', 'localhost'));
         $ob->get();
         $ob->fixphpIniFlag();
         $this->__var_docrootpath = $this->getParentO()->getFullDocRoot();
         $list = $this->getInheritedList();
         foreach ($list as $l) {
             $this->phpini_flag_b->{$l} = $ob->phpini_flag_b->{$l};
         }
         $this->__var_web_user = $this->getParentO()->username;
         $this->__var_customer_name = $this->getParentO()->customer_name;
         $this->__var_disable_openbasedir = $this->getParentO()->webmisc_b->disable_openbasedir;
     }
     $this->__var_extrabasedir = $gen->extrabasedir;
     $driverapp = $gbl->getSyncClass(null, $this->syncserver, 'web');
     $this->__var_webdriver = $driverapp;
 }
Example #8
0
function fix_mysql_root_password($server)
{
    global $gbl, $sgbl, $login, $ghtml;
    $pass = $login->password;
    $pass = fix_nname_to_be_variable($pass);
    $pass = substr($pass, 3, 11);
    $dbadmin = new Dbadmin(null, $server, "mysql___{$server}");
    $dbadmin->get();
    if ($dbadmin->dbaction === 'add') {
        $dbadmin->syncserver = $server;
        $dbadmin->ttype = 'mysql';
        $dbadmin->dbtype = 'mysql';
        $dbadmin->dbadmin_name = 'root';
        $dbadmin->parent_clname = createParentName("pserver", $server);
        $dbadmin->write();
        $dbadmin->get();
        $dbadmin->dbaction = 'clean';
    }
    if ($dbadmin->dbpassword) {
        dprint("Mysql Password is not null\n");
        return;
    }
    $dbadmin->dbpassword = $pass;
    $dbadmin->setUpdateSubaction('update');
    try {
        $dbadmin->was();
    } catch (exception $e) {
    }
}
Example #9
0
 static function createWelcomeTicket()
 {
     global $gbl, $sgbl, $login, $ghtml;
     $name = ucfirst($sgbl->__var_program_name);
     $parent['parent_clname'] = createParentName('client', 'admin');
     $param['made_by'] = createParentName('pserver', $name);
     $param['sent_to'] = createParentName('client', 'admin');
     $param['subject'] = "Welcome to {$name}";
     //$param['priority'] = "low";
     $param['category'] = "Welcome";
     $param['descr_f'] = "Welcome to {$name}";
     $param['ddate'] = time();
     $param['date_modified'] = time();
     $ticketconfig = $login->getObject('ticketconfig');
     $param['nname'] = $ticketconfig->getAndIncrementTicket();
     $ticketconfig->write();
     $param['unread_flag'] = 'on';
     $param['state'] = 'open';
     $ticket = new Ticket(null, null, $param['nname']);
     $ticket->create($param);
     $ticket->postAdd();
     $ticket->was();
 }
Example #10
0
 function updateChangeOwner($param)
 {
     global $gbl, $sgbl, $login, $ghtml;
     $rparent['up'] = $this->getParentO()->getParentO();
     if ($rparent['up']) {
         $rparent['top'] = $rparent['up']->getParentO();
     }
     $rparent['down'] = $this->getParentO();
     if ($rparent['down']->isLogin()) {
         $rparent['up'] = null;
     }
     $newparent = getFromAny($rparent, 'client', $param['parent_name_change']);
     /*
     	if (!$this->checkIfEnoughParentQuotaAll($newparent)) {
     		throw new lxexception('not_enough_quota_in_parent', 'quota');
     	}
     */
     // Get the objectlist BEFORE you change the parent.
     $this->__old_parent_name = $this->parent_clname;
     $this->parent_clname = createParentName("client", $param['parent_name_change']);
     $this->__parent_o = $newparent;
     $this->setUpdateSubaction();
     $this->changeOwnerSpecific();
     $gbl->__this_redirect = $ghtml->getFullUrl('a=resource', null);
     $gbl->__this_function = array("lxclass", "exec_collectQuota");
     $gbl->__this_functionargs = null;
     return null;
 }
 static function getArrayFromString($t)
 {
     $array = explode("\n", $t);
     error_reporting(0);
     foreach ($array as $a) {
         $t = $a;
         $a = ltrim($t);
         list($a1, $a2, $a3, $a4) = explode(" ", $a);
         $b['parent_clname'] = createParentName("pserver", "localhost");
         switch ($a1) {
             case 'iface':
                 list($name, $id) = explode(':', $a2);
                 if ($id === " " || is_null($id)) {
                     $b['devname'] = $a2;
                 } else {
                     $b['devname'] = $name . "-" . $id;
                 }
                 $b['bootproto'] = $a4;
                 break;
             case 'address':
                 $b['ipaddr'] = $a2;
                 break;
             case 'network':
                 $b['network'] = $a2;
                 break;
             case 'netmask':
                 $b['netmask'] = $a2;
                 break;
             case 'broadcast':
                 $b['broadcast'] = $a2;
                 break;
             case 'gateway':
                 $b['gateway'] = $a2;
                 break;
         }
     }
     return $b;
 }
Example #12
0
 static function process_paypal($list)
 {
     initProgram('admin');
     $sq = new Sqlite(null, 'paymentdetail');
     $r = paymentdetail__paypal::createPaymentDetail($list);
     if (self::checkIftransactionExists($r['transactionid'])) {
         log_log("paypal_billing", "Transactionid {$r['transactionid']} already exists\n");
         return;
     }
     $i = 0;
     while (true) {
         $r['nname'] = implode("___", array($r['client'], $r['month'], $i));
         if (!$sq->getRowsWhere("nname = '{$r['nname']}'")) {
             break;
         }
         $i++;
     }
     $r['parent_clname'] = createParentName('client', $r['client']);
     $cl = new Client(null, null, $r['client']);
     $cl->get();
     if (!$cl->isOn('status')) {
         $cl->updateEnable(null);
         $cl->was();
     }
     $payp = new paymentDetail(null, null, $r['nname']);
     $r['complete_detail'] = $list;
     $r['paymentgw'] = 'paypal';
     $payp->create($r);
     $payp->write();
     log_log("paypal_billing", "saved the payment detail {$p->nname}");
 }
Example #13
0
function do_desc_add($object, $class, $param)
{
    global $gbl, $sgbl, $login, $ghtml;
    $quotaclass = exec_class_method($class, "getquotaclass", $class);
    $numvar = "{$quotaclass}_num";
    $qobject = $object->getClientParentO();
    dprint($qobject->getClname());
    if ($qobject->isQuotaVariable($numvar)) {
        if (isQuotaGreaterThanOrEq($qobject->used->{$numvar}, $qobject->priv->{$numvar})) {
            throw new lxException("Quota Exceeded for {$class}", 'nname', $numvar);
        }
    }
    /*
    	$list = $qobject->getQuotaVariableList();
    	foreach((array) $list as $l => $v) {
    		if (csb($l, "{$class}_m_")) {
    			$license = strtil(strfrom($l, "_n_"), "_num");
    			$licvar = strtil(strfrom($l, "_m_"), "_n_");
    			if (isset($param[$licvar]) && $param[$licvar] === $license) {
    				if (isQuotaGreaterThanOrEq($qobject->used->$l, $qobject->priv->$l)) {
    					throw new lxException("Quota Exceeded for $class $licvar.$license", 'nname', $numvar);
    				}
    			}
    		}
    	}
    */
    // Setting it here itself so that the add can override if necessary. This is done in tickets, where the parent is always the admin.
    $param['parent_clname'] = $object->getClName();
    // In the case of mailaccount, the real parent is mmail, while the object is added to client.
    if (isset($param['real_clparent_f'])) {
        $parent_class = exec_class_method($class, 'defaultParentClass', $object);
        $param['parent_clname'] = createParentName($parent_class, $param['real_clparent_f']);
    }
    $param = exec_class_method($class, 'Add', $object, $class, $param);
    // First loop to create a unique nname if applicable.... FOr the 'unique-nname-creation' to work in the second loop, the variables must be resolved before that... So this extra looping...
    foreach ($param as $k => $v) {
        if (csb($k, "__v_") || csb($k, "__m_")) {
            continue;
        }
        $object->resolve_class_differences($class, $k, $dclass, $dk);
    }
    foreach ($param as $k => $v) {
        if (csb($k, "__v_") || csb($k, "__m_")) {
            continue;
        }
        $object->resolve_class_heirarchy($class, $k, $dclass, $dk);
        $object->resolve_class_differences($class, $k, $ddclass, $ddk);
        $nnamevar = get_real_class_variable($ddclass, "__rewrite_nname_const");
        if ($nnamevar) {
            $nnamelist = null;
            foreach ($nnamevar as $n) {
                $nnamelist[] = $param[$n];
            }
            $nparam[$dclass]['nname'] = implode($sgbl->__var_nname_impstr, $nnamelist);
        }
        $nparam[$dclass][$dk] = $v;
    }
    // First Pass
    foreach ($nparam as $k => $v) {
        if (csa($k, "_s_")) {
            continue;
        }
        if ($k === 'priv') {
            $olist[$k] = new priv(null, null, $nparam[$class]['nname']);
            check_priv($object, $class, $olist[$k], $v);
            continue;
        }
        if ($k === 'used') {
            $olist[$k] = new Used(null, null, $nparam[$class]['nname']);
            $olist[$k]->create($v);
            continue;
        }
        if ($k === 'listpriv') {
            //$olist[$k] = new listpriv($object->__masterserver, null, $class . "_s_vv_p_" . $nparam[$class]['nname']);
            $olist[$k] = new listpriv($object->__masterserver, null, $class . "-" . $nparam[$class]['nname']);
            check_listpriv($object, $class, $olist[$k], $v);
            continue;
        }
        if (csa($k, "_b")) {
            $olist[$k] = new $k($object->__masterserver, null, $nparam[$class]['nname']);
        } else {
            $olist[$k] = new $k($object->__masterserver, null, $v['nname']);
        }
        $olist[$k]->inheritSyncServer($object);
        $olist[$k]->initThisDef();
        $olist[$k]->create($v);
        // The createsyncclass needs the syncserver variable to be set. Which may not be available. So we have to run this again.
        if ($olist[$k]->hasDriverClass()) {
            $olist[$k]->createSyncClass();
        }
    }
    // The main object has to inherit the masterserver here itself, so that its children will inherit it later when they are added through addobject.
    if (!cse($class, "_a") && exec_class_method($class, "isDatabase") && exists_in_db($object->__masterserver, $class, $olist[$class]->nname)) {
        // If the parent is getting added too, then that means we are in the client add page, and thus the variable is vps_name, domain_name rather than nname.
        if ($object->dbaction === 'add') {
            $vname = "{$class}_name";
        } else {
            $vname = "nname";
        }
        throw new lxException("{$olist[$class]->nname}+already+exists+in+{$class}.", $vname, $class);
    }
    //Second Pass...
    foreach ($nparam as $k => $v) {
        if (!csa($k, "_s_") && !csa($k, "-")) {
            continue;
        }
        $clist = explode("_s_", $k);
        $k = $clist[1];
        $cl = $clist[0];
        $nolist[$k] = new $k($object->__masterserver, null, $v['nname']);
        $nolist[$k]->inheritSyncServer($olist[$cl]);
        $nolist[$k]->initThisDef();
        $nolist[$k]->create($v);
        // The createsyncclass needs the syncserver variable to be set. Which may not be available. So we have to run this again.
        if ($nolist[$k]->hasDriverClass()) {
            $nolist[$k]->createSyncClass();
        }
        $olist[$cl]->addObject($k, $nolist[$k]);
    }
    foreach ($olist as $k => $v) {
        if (cse($k, "_b") || $k === 'used' || $k === 'priv' || $k === 'listpriv') {
            $olist[$class]->{$k} = $v;
            continue;
        }
        if ($k != $class) {
            $olist[$class]->addObject($k, $v);
            continue;
        }
    }
    if (isset($param['__v_priv'])) {
        $olist[$class]->priv = $param['__v_priv'];
    }
    if (isset($param['__v_listpriv'])) {
        $olist[$class]->listpriv = $param['__v_listpriv'];
    }
    //$olist[$class]->parent_clname = $object->getClName();
    $rparent = $object;
    $olist[$class]->__parent_o = $rparent;
    $olist[$class]->postAdd();
    $rparent->addToList($class, $olist[$class]);
    $olist[$class]->superPostAdd();
    //dprintr($object);
    notify_admin("add", $object, $olist[$class]);
    do_actionlog($login, $olist[$class], "add", "");
    //This shouldn't happen here. This should be done only after the synctosystem since, the sync can fail and the write may not happen at all.
    //$olist[$class]->changeUsedFromParentAll();
    dprint($olist[$class]->getParentO());
}
Example #14
0
function monitor_remote_main()
{
    global $gbl, $sgbl, $login, $ghtml;
    ob_start();
    // @var $login client
    $val = $ghtml->frm_rmt;
    initprogram('admin');
    dprint($val);
    $rmt = unserialize(base64_decode($val));
    $ipaddress = $_SERVER['REMOTE_ADDR'];
    $rem = new Remote();
    $rem->exception = null;
    $rem->ddata = "hello";
    /*
    	if (!check_raw_password('client', $info->login, $info->password)) {
    		$rem->exception = new lxexception('license_login_failed', 'login');
    		print_and_exit($rem);
    	}
    */
    $servername = $_SERVER['REMOTE_ADDR'];
    $sv = new MonitoringServerStatus(null, null, $servername);
    $sv->get();
    $sv->setUpdateSubaction();
    $sv->updatetime = time();
    $sv->write();
    if ($rmt->cmd === 'im_alive') {
        print_and_exit($rem);
    }
    if ($rmt->cmd === 'get_list') {
        $arlist = null;
        $login->loadAllObjects('monitorserver');
        $mlist = $login->getList('monitorserver');
        foreach ($mlist as $ml) {
            if (!$ml->isOn('status')) {
                continue;
            }
            $array['nname'] = $ml->nname;
            $array['servername'] = $ml->servername;
            $arlist[$ml->nname] = $array;
            $plist = $ml->getList('monitorport');
            foreach ($plist as $p) {
                $parray['nname'] = $p->nname;
                $parray['portnumber'] = $p->portnumber;
                $arlist[$ml->nname]['monitorport_l'][] = $parray;
            }
        }
        $rem->ddata = $arlist;
        print_and_exit($rem);
    }
    if ($rmt->cmd === 'my_name') {
        $rem->ddata = $_SERVER['REMOTE_ADDR'];
        print_and_exit($rem);
    }
    if ($rmt->cmd !== 'set_list') {
        exit;
    }
    $slist = $rmt->ddata;
    foreach ($slist as $ll) {
        foreach ($ll as $l) {
            $nname = $servername . "___" . $l['portnname'];
            $test = new PortStatus(null, null, $nname);
            $test->get();
            // hack hack.. Temproarly forcibly reseting error string.
            $test->errorstring = "";
            if ($test->dbaction === 'add') {
                $test->create($l);
            } else {
                $test->create($l);
                $test->dbaction = 'update';
            }
            $test->parent_clname = createParentName('monitorport', $l['portnname']);
            $test->servername = $servername;
            $test->updatetime = time();
            $test->write();
            port_send_email($test);
        }
    }
    do_send_email();
    $val = base64_encode(serialize($rem));
    print $val;
    flush();
    exit;
}