Example #1
0
    updateToVersion('0.9.32');
}
if (isFroxlorVersion('0.9.32')) {
    showUpdateStep("Updating from 0.9.32 to 0.9.33-dev1", false);
    showUpdateStep("Adding settings for custom newsfeed on customer-dashboard");
    Settings::AddNew("customer.show_news_feed", isset($_POST['customer_show_news_feed']) ? (int) $_POST['customer_show_news_feed'] : '0');
    Settings::AddNew("customer.news_feed_url", isset($_POST['customer_news_feed_url']) ? $_POST['customer_news_feed_url'] : '');
    lastStepStatus(0);
    updateToVersion('0.9.33-dev1');
}
if (isFroxlorVersion('0.9.33-dev1')) {
    showUpdateStep("Updating from 0.9.33-dev1 to 0.9.33-dev2", false);
    showUpdateStep("Adding settings for hostname-dns-entry");
    Settings::AddNew("system.dns_createhostnameentry", isset($_POST['dns_createhostnameentry']) ? (int) $_POST['dns_createhostnameentry'] : '0');
    lastStepStatus(0);
    updateToVersion('0.9.33-dev2');
}
if (isFroxlorVersion('0.9.33-dev2')) {
    showUpdateStep("Updating from 0.9.33-dev2 to 0.9.33-dev3", false);
    showUpdateStep("Adding settings for password-generation options");
    Settings::AddNew("panel.password_alpha_lower", '1');
    Settings::AddNew("panel.password_alpha_upper", '1');
    Settings::AddNew("panel.password_numeric", '0');
    Settings::AddNew("panel.password_special_char_required", '0');
    Settings::AddNew("panel.password_special_char", '!?<>ยง$%&+#=@');
    lastStepStatus(0);
    showUpdateStep("Adding settings for fpm-apache2.4-mod_proxy integration");
    Settings::AddNew("phpfpm.use_mod_proxy", '0');
    lastStepStatus(0);
    updateToVersion('0.9.33-dev3');
}
Example #2
0
        lastStepStatus(1, "not needed");
    }
    showUpdateStep("Updating language descriptions to be in the native language");
    $upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_LANGUAGE . "` SET `language` = :lang WHERE `iso` = :iso");
    Database::pexecute($upd_stmt, array('lang' => 'Fran&ccedil;ais', 'iso' => 'fr'), false);
    Database::pexecute($upd_stmt, array('lang' => 'Portugu&ecirc;s', 'iso' => 'pt'), false);
    Database::pexecute($upd_stmt, array('lang' => 'Italiano', 'iso' => 'it'), false);
    Database::pexecute($upd_stmt, array('lang' => 'Nederlands', 'iso' => 'nl'), false);
    Database::pexecute($upd_stmt, array('lang' => 'Svenska', 'iso' => 'sv'), false);
    lastStepStatus(0);
    updateToVersion('0.9.34-dev1');
}
if (isFroxlorVersion('0.9.34-dev1')) {
    showUpdateStep("Updating from 0.9.34-dev1 to 0.9.34-dev2", false);
    showUpdateStep("Adding new settings for apache-itk-mpm");
    Settings::AddNew("system.apacheitksupport", '0');
    lastStepStatus(0);
    showUpdateStep("Increase text-field size of domain-ssl table");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_cert_file` mediumtext NOT NULL");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_key_file` mediumtext NOT NULL");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_ca_file` mediumtext NOT NULL");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` MODIFY `ssl_cert_chainfile` mediumtext NOT NULL");
    lastStepStatus(0);
    updateToVersion('0.9.34-dev2');
}
if (isFroxlorVersion('0.9.34-dev2')) {
    showUpdateStep("Updating from 0.9.34-dev2 to 0.9.34-dev3", false);
    $do_update = true;
    showUpdateStep("Checking for required PHP mbstring-extension");
    if (!extension_loaded('mbstring')) {
        $do_update = false;
Example #3
0
    Settings::AddNew("system.mail_smtp_port", $smtp_port);
    Settings::AddNew("system.mail_smtp_usetls", $smtp_usetls);
    Settings::AddNew("system.mail_smtp_auth", $smtp_useauth);
    Settings::AddNew("system.mail_smtp_user", $smtp_user);
    Settings::AddNew("system.mail_smtp_passwd", $smtp_passwd);
    lastStepStatus(0);
    updateToDbVersion('201609200');
}
if (isDatabaseVersion('201609200')) {
    showUpdateStep("Changing tables to be more mysql strict-mode compatible");
    Database::query("ALTER TABLE `" . TABLE_MAIL_VIRTUAL . "` CHANGE `destination` `destination` TEXT NOT NULL DEFAULT '';");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` CHANGE `registration_date` `registration_date` DATE NULL DEFAULT NULL;");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` CHANGE `termination_date` `termination_date` DATE NULL DEFAULT NULL;");
    lastStepStatus(0);
    updateToDbVersion('201609240');
}
if (isDatabaseVersion('201609240')) {
    showUpdateStep("Add HSTS settings for froxlor-vhost");
    Settings::AddNew("system.hsts_maxage", 0);
    Settings::AddNew("system.hsts_incsub", 0);
    Settings::AddNew("system.hsts_preload", 0);
    lastStepStatus(0);
    showUpdateStep("Settings HSTS default values for all domains (deactivated)");
    Database::query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `hsts_sub` = '0', `hsts_preload` = '0';");
    lastStepStatus(0);
    updateToDbVersion('201610070');
}
if (isFroxlorVersion('0.9.37')) {
    showUpdateStep("Updating from 0.9.37 to 0.9.38-rc1", false);
    updateToVersion('0.9.38-rc1');
}
Example #4
0
    showUpdateStep("Updating from 0.9.34.2 to 0.9.35-dev1");
    lastStepStatus(0);
    showUpdateStep("Adding Let's Encrypt - certificate fields");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAIN_SSL_SETTINGS . "` ADD `expirationdate` DATETIME NULL AFTER `ssl_cert_chainfile`;");
    Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `lepublickey` MEDIUMTEXT DEFAULT NULL AFTER `custom_notes_show`");
    Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `leprivatekey` MEDIUMTEXT DEFAULT NULL AFTER `lepublickey`;");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `letsencrypt` TINYINT(1) NOT NULL DEFAULT '0' AFTER `ismainbutsubto`;");
    Settings::AddNew("system.leprivatekey", 'unset');
    Settings::AddNew("system.lepublickey", 'unset');
    showUpdateStep("Adding new cron-module for Let's encrypt");
    $stmt = Database::prepare("\n        INSERT INTO `" . TABLE_PANEL_CRONRUNS . "` SET\n        `module` = 'froxlor/letsencrypt',\n        `cronfile` = 'letsencrypt',\n        `interval` = '5 MINUTE',\n        `desc_lng_key` = 'cron_letsencrypt',\n        `lastrun` = NOW(),\n        `isactive` = 1");
    Database::pexecute($stmt);
    lastStepStatus(0);
    updateToVersion('0.9.35-dev1');
}
if (isFroxlorVersion('0.9.35-dev1')) {
    showUpdateStep("Updating from 0.9.35-dev1 to 0.9.35-dev2");
    lastStepStatus(0);
    showUpdateStep("Adding Let's Encrypt - settings");
    Settings::AddNew("system.letsencryptca", 'testing');
    Settings::AddNew("system.letsencryptcountrycode", 'DE');
    Settings::AddNew("system.letsencryptstate", 'Germany');
    lastStepStatus(0);
    updateToVersion('0.9.35-dev2');
}
if (isFroxlorVersion('0.9.35-dev2')) {
    showUpdateStep("Updating from 0.9.35-dev2 to 0.9.35-dev3");
    Database::query("ALTER TABLE `" . TABLE_PANEL_DOMAINS . "` ADD `termination_date` date NOT NULL AFTER `registration_date`");
    lastStepStatus(0);
    updateToVersion('0.9.35-dev3');
}
Example #5
0
    lastStepStatus(0);
    updateToDbVersion('201605090');
}
if (isDatabaseVersion('201605090')) {
    showUpdateStep("Adjusting SPF record setting");
    $current_spf = Settings::Get('spf.spf_entry');
    // @	IN	TXT	"v=spf1 a mx -all"
    $new_spf = substr($current_spf, strpos($current_spf, '"'));
    Settings::Set('spf.spf_entry', $new_spf, true);
    lastStepStatus(0);
    updateToDbVersion('201605120');
}
if (isDatabaseVersion('201605120')) {
    showUpdateStep("Adding new dns-server setting");
    $new_dns_daemon = isset($_POST['new_dns_daemon']) ? $_POST['new_dns_daemon'] : "bind";
    Settings::AddNew("system.dns_server", $new_dns_daemon);
    lastStepStatus(0);
    updateToDbVersion('201605170');
}
if (isDatabaseVersion('201605170')) {
    showUpdateStep("Adding new dns-editor setting for customers");
    Database::query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `dnsenabled` tinyint(1) NOT NULL default '0' AFTER `perlenabled`;");
    lastStepStatus(0);
    updateToDbVersion('201605180');
}
if (isDatabaseVersion('201605180')) {
    showUpdateStep("Changing tables to be more mysql strict-mode compatible");
    Database::query("ALTER TABLE `" . TABLE_FTP_USERS . "` CHANGE `last_login` `last_login` DATETIME NULL DEFAULT NULL;");
    Database::query("ALTER TABLE `" . TABLE_PANEL_IPSANDPORTS . "` CHANGE `specialsettings` `specialsettings` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;");
    Database::query("ALTER TABLE `" . TABLE_PANEL_TASKS . "` CHANGE `data` `data` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;");
    lastStepStatus(0);
Example #6
0
    Database::query("ALTER TABLE `panel_traffic`\n    \tDROP KEY `customerid`,\n    \tADD FOREIGN KEY `fk_customer` (customerid)\n        \tREFERENCES panel_customers(customerid)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `panel_traffic_admins`\n    \tDROP KEY `adminid`,\n    \t\tADD FOREIGN KEY `fk_admin` (adminid)\n        \tREFERENCES panel_admins(adminid)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    // it seems there are occasions where diskspace info
    // for deleted customers is still in the database.
    // remove that, just in case
    Database::query("DELETE FROM `panel_diskspace` WHERE customerid NOT IN (SELECT customerid FROM `panel_customers`)");
    Database::query("ALTER TABLE `panel_diskspace`\n    \tDROP KEY `customerid`,\n    \tADD FOREIGN KEY `fk_customer` (customerid)\n        \tREFERENCES panel_customers(customerid)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `panel_diskspace_admins`\n    \tDROP KEY `adminid`,\n    \tADD FOREIGN KEY `fk_admin` (adminid)\n        \tREFERENCES panel_admins(adminid)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `panel_tickets`\n    \tMODIFY COLUMN `adminid` INT(11) UNSIGNED NOT NULL,\n    \tMODIFY COLUMN `customerid` INT(11) UNSIGNED DEFAULT NULL");
    Database::query("UPDATE `panel_tickets` set customerid=NULL where customerid='0'");
    Database::query("ALTER TABLE `panel_tickets`\n\t\tDROP KEY `customerid`,\n    \t  ADD FOREIGN KEY `fk_admin` (adminid)\n\t        REFERENCES panel_admins(adminid)\n    \t    ON UPDATE CASCADE ON DELETE CASCADE,\n    \tADD FOREIGN KEY `fk_customer` (customerid)\n        \tREFERENCES panel_customers(customerid)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `panel_ticket_categories`\n    \tMODIFY COLUMN `adminid` INT(11) UNSIGNED DEFAULT NULL,\n    \tADD FOREIGN KEY `fk_admin` (adminid)\n        \tREFERENCES panel_admins(adminid)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    // it seems there can be redirect codes for deleted
    // domains. Delete those, too
    Database::query("DELETE from `domain_redirect_codes` where did not in (select id from `panel_domains`)");
    Database::query("ALTER TABLE `domain_redirect_codes`\n    \tADD PRIMARY KEY `pk` (`rid`,`did`),\n    \tADD FOREIGN KEY `fk_redirect` (`rid`)\n\t        REFERENCES redirect_codes(id)\n    \t    ON UPDATE CASCADE ON DELETE CASCADE,\n    \tADD FOREIGN KEY `fk_domain` (did)\n        \tREFERENCES panel_domains(id)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `domain_ssl_settings`\n    \tMODIFY COLUMN `domainid` INT(11) UNSIGNED NOT NULL,\n    \tADD FOREIGN KEY `fk_domain` (domainid)\n        \tREFERENCES panel_domains(id)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `panel_domaintoip`\n    \tADD FOREIGN KEY `fk_domain` (id_domain)\n        \tREFERENCES panel_domains(id)\n        \tON UPDATE CASCADE ON DELETE CASCADE,\n    \tADD FOREIGN KEY `fk_ipandport` (id_ipandports)\n        \tREFERENCES panel_ipsandports(id)\n        \tON UPDATE CASCADE ON DELETE CASCADE;");
    Database::query("ALTER TABLE `ftp_quotalimits`\n\t\tADD PRIMARY KEY `pk` (`name`, `quota_type`);");
    Database::query("ALTER TABLE `ftp_quotatallies`\n\t\tADD PRIMARY KEY `pk` (`name`, `quota_type`);");
    // add setting for webserver group
    Settings::AddNew('system.customerdir_group_webserver', '0');
    // add multinode version
    Settings::AddNew('multinode.version', '0.0.1.0');
}
if (MN_getVersion() == array(0, 0, 1, 0)) {
    showUpdateStep("Updating to multinode 0.0.2.0", false);
    Database::query("CREATE TABLE `panel_nodes` (\n  \t\t`id` int(11) unsigned NOT NULL AUTO_INCREMENT,\n  \t\t`name` varchar(64) NOT NULL,\n  \t\t`image_name` varchar(128) NOT NULL,\n  \t\t`image_tag` varchar(128) DEFAULT 'latest' NOT NULL,\n  \t\t`is_default` tinyint(1) DEFAULT '0',\n  \t\tPRIMARY KEY (`id`)\n\t\t) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;");
    Database::query("CREATE TABLE `panel_nodetodomain` (\n  \t\t`id_node` int(11) unsigned NOT NULL,\n  \t\t`id_domain` int(11) unsigned NOT NULL,\n  \t\tPRIMARY KEY (`id_node`,`id_domain`),\n  \t\tFOREIGN KEY `fk_node` (id_node)\n  \t\t\tREFERENCES panel_nodes(id)\n    \t\tON UPDATE CASCADE ON DELETE CASCADE,\n  \t\tFOREIGN KEY `fk_domain` (id_domain)\n  \t\t\tREFERENCES panel_domains(id)\n    \t\tON UPDATE CASCADE ON DELETE CASCADE\n\t\t) ENGINE=InnoDB CHARSET=utf8 COLLATE=utf8_general_ci;");
    Settings::Set('multinode.version', '0.0.2.0');
}
Example #7
0
    // get user-chosen value
    $websrv_default = "/etc/apache2/conf-enabled/acme.conf";
    if (Settings::Get('system.webserver') == 'nginx') {
        $websrv_default = "/etc/nginx/acme.conf";
    }
    $acmeconffile = isset($_POST['acmeconffile']) ? $_POST['acmeconffile'] : $websrv_default;
    $acmeconffile = makeCorrectFile($acmeconffile);
    Settings::AddNew("system.letsencryptacmeconf", $acmeconffile);
    lastStepStatus(0);
    updateToDbVersion('201609120');
}
if (isDatabaseVersion('201609120')) {
    showUpdateStep("Adding new SMTP settings for emails sent by froxlor");
    // get user-chosen value
    $smtp_enable = isset($_POST['smtp_enable']) ? (int) $_POST['smtp_enable'] : 0;
    $smtp_host = isset($_POST['smtp_host']) ? $_POST['smtp_host'] : "localhost";
    $smtp_port = isset($_POST['smtp_port']) ? (int) $_POST['smtp_port'] : 25;
    $smtp_usetls = isset($_POST['smtp_usetls']) ? (int) $_POST['smtp_usetls'] : 1;
    $smtp_useauth = isset($_POST['smtp_auth']) ? (int) $_POST['smtp_auth'] : 1;
    $smtp_user = isset($_POST['smtp_user']) ? $_POST['smtp_user'] : "";
    $smtp_passwd = isset($_POST['smtp_passwd']) ? $_POST['smtp_passwd'] : "";
    Settings::AddNew("system.mail_use_smtp", $smtp_enable);
    Settings::AddNew("system.mail_smtp_host", $smtp_host);
    Settings::AddNew("system.mail_smtp_port", $smtp_port);
    Settings::AddNew("system.mail_smtp_usetls", $smtp_usetls);
    Settings::AddNew("system.mail_smtp_auth", $smtp_useauth);
    Settings::AddNew("system.mail_smtp_user", $smtp_user);
    Settings::AddNew("system.mail_smtp_passwd", $smtp_passwd);
    lastStepStatus(0);
    updateToDbVersion('201609200');
}