Current File : //var/softaculous/orange/_clone.php |
<?php
//////////////////////////////////////////////////////////////
//===========================================================
// clone.php
//===========================================================
// SOFTACULOUS
// Version : 4.2.8
// Inspired by the DESIRE to be the BEST OF ALL
// ----------------------------------------------------------
// Started by: Alons
// Date: 10th Jan 2009
// Time: 21:00 hrs
// Site: http://www.softaculous.com/ (SOFTACULOUS)
// ----------------------------------------------------------
// Please Read the Terms of use at http://www.softaculous.com
// ----------------------------------------------------------
//===========================================================
// (c)Softaculous Inc.
//===========================================================
//////////////////////////////////////////////////////////////
if(!defined('SOFTACULOUS')){
die('Hacking Attempt');
}
//The Install process
function __clone(){
global $__settings, $error, $software, $globals, $replace_data, $source_data;
//Do we meet the Minimum software requirements
__requirements();
if(!empty($error)){
return false;
}
$temp = parse_url($source_data['softurl']);
$source_data['relativeurl'] = $temp['path'];
$source_data['domhost'] = $temp['host'];
$temp = parse_url($__settings['softurl']);
$__settings['relativeurl'] = $temp['path'];
$__settings['domhost'] = $temp['host'];
//To get site_name, admin_email, admin_firstname and admin_lastname
$query = "select `name` FROM `ohrm_organization_gen_info` WHERE `id`= 1;";
$result = sdb_query($query, $__settings['softdbhost'], $__settings['softdbuser'], $__settings['softdbpass'], $__settings['softdb']);
$query1 = "select * FROM `hs_hr_employee` WHERE `emp_number`= 1;";
$result1 = sdb_query($query1, $__settings['softdbhost'], $__settings['softdbuser'], $__settings['softdbpass'], $__settings['softdb']);
////////////////////////
$__settings['instance.identifier'] = base64_encode($result['0']['name'] . '_' . $result1['0']['emp_work_email'] . '_' . $result1['0']['emp_firstname'] . '_' . $result1['0']['emp_lastname'] . '_' . $__settings['domhost'] . '_' . '' . '_' . $__settings['ver']);
$update2 = "UPDATE hs_hr_config SET `value` ='".$__settings['instance.identifier']."' WHERE `key`= 'instance.identifier';";
sdb_query($update2, $__settings['softdbhost'], $__settings['softdbuser'], $__settings['softdbpass'], $__settings['softdb']);
$__settings['instance.identifier_checksum'] = __createInstanceIdentifierChecksum($result['0']['name'], $result1['0']['emp_work_email'], $result1['0']['emp_firstname'], $result1['0']['emp_lastname'], $__settings['domhost'], '', $__settings['ver']);
$update1 = "UPDATE hs_hr_config SET `value` ='".$__settings['instance.identifier_checksum']."' WHERE `key`= 'instance.identifier_checksum';";
sdb_query($update1, $__settings['softdbhost'], $__settings['softdbuser'], $__settings['softdbpass'], $__settings['softdb']);
$__settings['csrf_secret'] = __createCsrfKey();
$update = "UPDATE hs_hr_config SET `value` ='".$__settings['csrf_secret']."' WHERE `key`= 'csrf_secret';";
sdb_query($update, $__settings['softdbhost'], $__settings['softdbuser'], $__settings['softdbpass'], $__settings['softdb']);
sclone_replace($replace_data, $__settings['softpath'].'/lib/confs/Conf.php', true);
sclone_replace($replace_data, $__settings['softpath'].'/symfony/config/databases.yml', true);
if(sfile_exists($__settings['softpath'].'/.htaccess')){
// If the installation is on root domain we need to change the below relative URL
if(is_dom_root($source_data['softpath'])){
$replace_data['RewriteBase \'/\''] = 'RewriteBase \''.$__settings['relativeurl'].'/\'';
$replace_data['RewriteBase /'] = 'RewriteBase '.$__settings['relativeurl']. '/';
}elseif(is_dom_root($__settings['softpath'])){
$replace_data['RewriteBase \''.$source_data['relativeurl'].'/\''] = 'RewriteBase \'/\'';
$replace_data['RewriteBase '.$source_data['relativeurl'].'/'] = 'RewriteBase /';
}
sclone_replace($replace_data, $__settings['softpath'].'/.htaccess', true);
}
srm($__settings['softpath'].'/symfony/cache/');
smkdir($__settings['softpath'].'/symfony/cache/', $globals['odc']);
@schmod($__settings['softpath'].'/symfony/cache/', $globals['odc']);
}
//Check whether the Minimum Software configuration matches
function __requirements(){
global $__settings, $error, $software;
return true;
}
function __createCsrfKey() {
global $__settings;
$csrfKey = '';
while (strlen($csrfKey) <= 50) {
$csrfKey .= base_convert(__crypt_random(), 10, 32);
}
return $csrfKey;
}
function __crypt_random($min = 0, $max = 0x7FFFFFFF)
{
if ($min == $max) {
return $min;
}
// see http://en.wikipedia.org/wiki//dev/random
// if open_basedir is enabled file_exists() will ouput an "open_basedir restriction in effect" warning,
// so we suppress it.
if (@file_exists('/dev/urandom')) {
static $fp;
if (!$fp) {
$fp = fopen('/dev/urandom', 'rb');
}
extract(unpack('Nrandom', fread($fp, 4)));
// say $min = 0 and $max = 3. if we didn't do abs() then we could have stuff like this:
// -4 % 3 + 0 = -1, even though -1 < $min
return abs($random) % ($max - $min) + $min;
}
/* Prior to PHP 4.2.0, mt_srand() had to be called before mt_rand() could be called.
Prior to PHP 5.2.6, mt_rand()'s automatic seeding was subpar, as elaborated here:
http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/
The seeding routine is pretty much ripped from PHP's own internal GENERATE_SEED() macro:
http://svn.php.net/viewvc/php/php-src/branches/PHP_5_3_2/ext/standard/php_rand.h?view=markup */
if (version_compare(PHP_VERSION, '5.2.5', '<=')) {
static $seeded;
if (!isset($seeded)) {
$seeded = true;
mt_srand(fmod(time() * getmypid(), 0x7FFFFFFF) ^ fmod(1000000 * lcg_value(), 0x7FFFFFFF));
}
}
static $crypto;
// The CSPRNG's Yarrow and Fortuna periodically reseed. This function can be reseeded by hitting F5
// in the browser and reloading the page.
if (!isset($crypto)) {
$key = $iv = '';
for ($i = 0; $i < 8; $i++) {
$key.= pack('n', mt_rand(0, 0xFFFF));
$iv .= pack('n', mt_rand(0, 0xFFFF));
}
switch (true) {
case class_exists('Crypt_AES'):
$crypto = new Crypt_AES(CRYPT_AES_MODE_CTR);
break;
case class_exists('Crypt_TripleDES'):
$crypto = new Crypt_TripleDES(CRYPT_DES_MODE_CTR);
break;
case class_exists('Crypt_DES'):
$crypto = new Crypt_DES(CRYPT_DES_MODE_CTR);
break;
case class_exists('Crypt_RC4'):
$crypto = new Crypt_RC4();
break;
default:
extract(unpack('Nrandom', pack('H*', sha1(mt_rand(0, 0x7FFFFFFF)))));
return abs($random) % ($max - $min) + $min;
}
$crypto->setKey($key);
$crypto->setIV($iv);
$crypto->enableContinuousBuffer();
}
extract(unpack('Nrandom', $crypto->encrypt("\0\0\0\0")));
return abs($random) % ($max - $min) + $min;
}
function __createInstanceIdentifierChecksum($organizationName, $email, $adminFirstName, $adminLastName, $host, $country, $ohrmVersion){
if (is_null($host)) {
$host = '';
}
if (is_null($country)) {
$country = '';
}
$params = array(
'organizationName' => $organizationName,
'organizationEmail' => $email,
'adminFirstName' => $adminFirstName,
'adminLastName' => $adminLastName,
'host' => $host,
'country' => $country,
'ohrmVersion' => $ohrmVersion
);
return base64_encode(serialize($params));
}
?>