* @copyright 2009 Deon George * @link http://osb.leenooks.net * * @link http://www.agileco.com/ * @copyright 2004-2008 Agileco, LLC. * @license http://www.agileco.com/agilebill/license1-4.txt * @author Tony Landis * @package AgileBill * @subpackage Module:HostServer */ /** * The main AgileBill Hosting Server Class * * @package AgileBill * @subpackage Module:HostServer */ class host_server extends OSB_module { # Manual add function host_manual_new($service, $server, $account) { } # Manual edit function host_manual_edit($service, $server, $account) { } # Manual activate function host_manual_active($service, $server, $account) { } # Manual deactivate function host_manual_inactive($service, $server, $account) { } # Manual delete function host_manual_delete($service, $server, $account) { } # Generate a new login function generate_login($service,$account,$max_un_len, $max_pw_len, $shared) { # define username if($service['host_username'] != '') { $ret['username'] = $service['host_username']; } else { if ($shared == false) { # is username already in use on this server? $db = &DB(); $sql = 'SELECT * FROM ' . AGILE_DB_PREFIX . 'service WHERE id != ' . $db->qstr( $service['id'] ) . ' AND host_server_id = ' . $db->qstr( $service['host_server_id'] ) . ' AND host_username = ' . $db->qstr( $account['username'] ) . ' AND site_id = ' . $db->qstr(DEFAULT_SITE); $rs = $db->Execute($sql); if ($rs->RecordCount() == 0) { $ret['username'] = $account['username']; } else { $ret['username'] = $this->generate_login1($max_un_len); } } else { $ret['username'] = $account['username']; } } # define password if($service['host_password'] != '') { $ret['password'] = $service['host_password']; } else { $ret['password'] = $this->generate_login1($max_pw_len); } # save the username/password for this service $db = &DB(); $sql = 'UPDATE ' . AGILE_DB_PREFIX . 'service SET host_username = ' . $db->qstr( $ret['username'] ) . ', host_password = ' . $db->qstr( $ret['password'] ) . ' WHERE id = ' . $db->qstr( $service['id'] ) . ' AND site_id = ' . $db->qstr(DEFAULT_SITE); $db->Execute($sql); return $ret; } # random un/pw function generate_login1($length) { srand((double)microtime()*1000000); $vowels = array("a", "e", "i", "o", "u"); $cons = array("b", "c", "d", "g", "h", "j", "k", "l", "m", "n", "p", "r", "s", "t", "u", "v", "w", "tr", "cr", "br", "fr", "th", "dr", "ch", "ph", "wr", "st", "sp", "sw", "pr", "sl", "cl"); $num_vowels = count($vowels); $num_cons = count($cons); for($i = 0; $i < $length; $i++){ @$rand .= $cons[rand(0, $num_cons - 1)] . $vowels[rand(0, $num_vowels - 1)]; } return $rand; } # use ip address function useipaddress($service, $server) { if($service['host_ip'] != '') return $service['host_ip']; $pat = "\r\n"; $ips_r = ''; @$ips = explode($pat, $server['ip_based_ip']); for($i=0; $imethod["$type"] = explode(",", $this->method["$type"]); $dx = new CORE_database; $rs = $dx->view($VAR, $this, $type); # get the list of available servers to define as "next server" $db = &DB(); $sql= 'SELECT id,name FROM ' . AGILE_DB_PREFIX . 'host_server WHERE id != ' . $db->qstr( $rs[0]['id'] ) . ' AND next_host_server_id != ' . $db->qstr( $rs[0]['id'] ) . ' AND provision_plugin = ' . $db->qstr( $rs[0]['provision_plugin'] ) . ' AND site_id = ' . $db->qstr(DEFAULT_SITE); $rs = $db->Execute($sql); if(@$rs->RecordCount() > 0) { $arr[0] = ''; while(!$rs->EOF) { $arr[$rs->fields['id']] = $rs->fields['name']; $rs->MoveNext(); } $smarty->assign('next_server_options', $arr); $smarty->assign('next_server', true); } else { $smarty->assign('next_server', false); } } } ?>