From c4024c81074c2611b14ce55e02fa74b651727bb8 Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Wed, 19 Dec 2018 17:13:41 +0100 Subject: [PATCH] use correct makeCorrect(Dir/File) everywhere Signed-off-by: Michael Kaufmann --- admin_configfiles.php | 12 +- admin_domains.php | 2 +- admin_index.php | 4 +- customer_domains.php | 2 +- customer_ftp.php | 4 +- customer_index.php | 4 +- lib/Froxlor/Api/Commands/CustomerBackups.php | 6 +- lib/Froxlor/Api/Commands/Customers.php | 4 +- lib/Froxlor/Api/Commands/DirOptions.php | 8 +- lib/Froxlor/Api/Commands/DirProtections.php | 4 +- lib/Froxlor/Api/Commands/Domains.php | 12 +- lib/Froxlor/Api/Commands/EmailAccounts.php | 4 +- lib/Froxlor/Api/Commands/EmailForwarders.php | 4 +- lib/Froxlor/Api/Commands/FpmDaemons.php | 4 +- lib/Froxlor/Api/Commands/Ftps.php | 6 +- lib/Froxlor/Api/Commands/IpsAndPorts.php | 20 ++-- lib/Froxlor/Api/Commands/PhpSettings.php | 4 +- lib/Froxlor/Api/Commands/SubDomains.php | 4 +- .../Cli/Action/ConfigServicesAction.php | 10 +- lib/Froxlor/Cron/Dns/Bind.php | 6 +- lib/Froxlor/Cron/Dns/DnsBase.php | 18 +-- lib/Froxlor/Cron/Http/Apache.php | 4 +- lib/Froxlor/Cron/Http/ConfigIO.php | 2 +- lib/Froxlor/Cron/Http/DomainSSL.php | 12 +- lib/Froxlor/Cron/Http/HttpConfigBase.php | 6 +- lib/Froxlor/Cron/Http/Lighttpd.php | 86 +++++++------- lib/Froxlor/Cron/Http/LighttpdFcgi.php | 2 +- lib/Froxlor/Cron/Http/Nginx.php | 74 ++++++------ lib/Froxlor/Cron/Http/NginxFcgi.php | 2 +- lib/Froxlor/Cron/Http/Php/Fcgid.php | 12 +- lib/Froxlor/Cron/Http/Php/Fpm.php | 26 ++-- lib/Froxlor/Cron/System/BackupCron.php | 12 +- lib/Froxlor/Cron/System/MailboxsizeCron.php | 2 +- lib/Froxlor/Cron/Traffic/ReportsCron.php | 8 +- lib/Froxlor/Cron/Traffic/TrafficCron.php | 54 ++++----- .../Cron/Traffic/cron_usage.inc.diskspace.php | 8 +- lib/Froxlor/Dns/PowerDNS.php | 4 +- lib/Froxlor/FileDir.php | 112 +++++++++++------- lib/functions/filedir/function.findDirs.php | 4 +- .../function.makeChownWithNewStats.php | 2 +- .../filedir/function.makePathfield.php | 2 +- .../filedir/function.storeDefaultIndex.php | 4 +- .../function.validateFormFieldString.php | 6 +- .../function.validateFormFieldString.php | 8 +- .../froxlor/function.CorrectErrorDocument.php | 2 +- .../froxlor/function.createAWStatsConf.php | 10 +- lib/functions/froxlor/function.getThemes.php | 2 +- .../froxlor/function.updateCounters.php | 2 +- .../function.appendOpenbasedirPath.php | 4 +- .../function.checkDisallowedPaths.php | 2 +- .../validate/function.checkPathConflicts.php | 8 +- .../function.makeCorrectDestination.php | 45 ------- logfiles_viewer.php | 4 +- 53 files changed, 328 insertions(+), 345 deletions(-) delete mode 100644 lib/functions/validate/function.makeCorrectDestination.php diff --git a/admin_configfiles.php b/admin_configfiles.php index e271668f..39b3624a 100644 --- a/admin_configfiles.php +++ b/admin_configfiles.php @@ -68,12 +68,12 @@ if ($userinfo['change_serversettings'] == '1') { '' => Settings::Get('system.vmail_uid'), '' => Settings::Get('system.vmail_gid'), '' => (Settings::Get('system.use_ssl') == '1') ? 'imaps pop3s' : '', - '' => makeCorrectDir($customer_tmpdir), - '' => makeCorrectDir(FROXLOR_INSTALL_DIR), - '' => makeCorrectDir(Settings::Get('system.bindconf_directory')), + '' => \Froxlor\FileDir::makeCorrectDir($customer_tmpdir), + '' => \Froxlor\FileDir::makeCorrectDir(FROXLOR_INSTALL_DIR), + '' => \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.bindconf_directory')), '' => Settings::Get('system.apachereload_command'), - '' => makeCorrectDir(Settings::Get('system.logfiles_directory')), - '' => makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')), + '' => \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.logfiles_directory')), + '' => \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')), '' => Settings::Get('system.httpgroup') ); @@ -89,7 +89,7 @@ if ($userinfo['change_serversettings'] == '1') { $services = ""; $daemons = ""; - $config_dir = makeCorrectDir(FROXLOR_INSTALL_DIR . '/lib/configfiles/'); + $config_dir = \Froxlor\FileDir::makeCorrectDir(FROXLOR_INSTALL_DIR . '/lib/configfiles/'); if ($distribution != "") { diff --git a/admin_domains.php b/admin_domains.php index 83bd351b..6e134622 100644 --- a/admin_domains.php +++ b/admin_domains.php @@ -392,7 +392,7 @@ if ($page == 'domains' || $page == 'overview') { if ($domain_emails_row['destination'] != '') { - $domain_emails_row['destination'] = explode(' ', makeCorrectDestination($domain_emails_row['destination'])); + $domain_emails_row['destination'] = explode(' ', \Froxlor\FileDir::makeCorrectDestination($domain_emails_row['destination'])); $email_forwarders += count($domain_emails_row['destination']); if (in_array($domain_emails_row['email_full'], $domain_emails_row['destination'])) { diff --git a/admin_index.php b/admin_index.php index 095af330..effa7cf6 100644 --- a/admin_index.php +++ b/admin_index.php @@ -315,8 +315,8 @@ if ($page == 'overview') { $errid = $_GET['errorid']; // read error file - $err_dir = makeCorrectDir(FROXLOR_INSTALL_DIR . "/logs/"); - $err_file = makeCorrectFile($err_dir . "/" . $errid . "_sql-error.log"); + $err_dir = \Froxlor\FileDir::makeCorrectDir(FROXLOR_INSTALL_DIR . "/logs/"); + $err_file = \Froxlor\FileDir::makeCorrectFile($err_dir . "/" . $errid . "_sql-error.log"); if (file_exists($err_file)) { diff --git a/customer_domains.php b/customer_domains.php index 0c2359d5..b124af59 100644 --- a/customer_domains.php +++ b/customer_domains.php @@ -163,7 +163,7 @@ if ($page == 'overview') { foreach ($domain_array as $row) { if (strpos($row['documentroot'], $userinfo['documentroot']) === 0) { - $row['documentroot'] = makeCorrectDir(str_replace($userinfo['documentroot'], "/", $row['documentroot'])); + $row['documentroot'] = \Froxlor\FileDir::makeCorrectDir(str_replace($userinfo['documentroot'], "/", $row['documentroot'])); } // get ssl-ips if activated diff --git a/customer_ftp.php b/customer_ftp.php index 692c365e..c93fdfbd 100644 --- a/customer_ftp.php +++ b/customer_ftp.php @@ -71,7 +71,7 @@ if ($page == 'overview') { $row['documentroot'] = $row['homedir']; } - $row['documentroot'] = makeCorrectDir($row['documentroot']); + $row['documentroot'] = \Froxlor\FileDir::makeCorrectDir($row['documentroot']); $row = htmlentities_array($row); eval("\$accounts.=\"" . getTemplate('ftp/accounts_account') . "\";"); @@ -187,7 +187,7 @@ if ($page == 'overview') { } else { $homedir = $result['homedir']; } - $homedir = makeCorrectDir($homedir); + $homedir = \Froxlor\FileDir::makeCorrectDir($homedir); $pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $homedir); diff --git a/customer_index.php b/customer_index.php index b729b954..7dbf0a4d 100644 --- a/customer_index.php +++ b/customer_index.php @@ -249,8 +249,8 @@ if ($page == 'overview') { $errid = $_GET['errorid']; // read error file - $err_dir = makeCorrectDir(FROXLOR_INSTALL_DIR."/logs/"); - $err_file = makeCorrectFile($err_dir."/".$errid."_sql-error.log"); + $err_dir = \Froxlor\FileDir::makeCorrectDir(FROXLOR_INSTALL_DIR."/logs/"); + $err_file = \Froxlor\FileDir::makeCorrectFile($err_dir."/".$errid."_sql-error.log"); if (file_exists($err_file)) { diff --git a/lib/Froxlor/Api/Commands/CustomerBackups.php b/lib/Froxlor/Api/Commands/CustomerBackups.php index 8dad3b91..840a187d 100644 --- a/lib/Froxlor/Api/Commands/CustomerBackups.php +++ b/lib/Froxlor/Api/Commands/CustomerBackups.php @@ -74,12 +74,12 @@ class CustomerBackups extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Re $customer = $this->getCustomerData(); // validation - $path = makeCorrectDir(validate($path, 'path', '', '', array(), true)); + $path = \Froxlor\FileDir::makeCorrectDir(validate($path, 'path', '', '', array(), true)); $userpath = $path; - $path = makeCorrectDir($customer['documentroot'] . '/' . $path); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $path); // path cannot be the customers docroot - if ($path == makeCorrectDir($customer['documentroot'])) { + if ($path == \Froxlor\FileDir::makeCorrectDir($customer['documentroot'])) { standard_error('backupfoldercannotbedocroot', '', true); } diff --git a/lib/Froxlor/Api/Commands/Customers.php b/lib/Froxlor/Api/Commands/Customers.php index 0c05caf1..ea2b72f0 100644 --- a/lib/Froxlor/Api/Commands/Customers.php +++ b/lib/Froxlor/Api/Commands/Customers.php @@ -351,7 +351,7 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource } $guid = intval(Settings::Get('system.lastguid')) + 1; - $documentroot = makeCorrectDir(Settings::Get('system.documentroot_prefix') . '/' . $loginname); + $documentroot = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.documentroot_prefix') . '/' . $loginname); if (file_exists($documentroot)) { standard_error('documentrootexists', $documentroot, true); @@ -547,7 +547,7 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource if (Settings::Get('system.awstats_enabled') == '1') { $stats_folder = 'awstats'; } - $ins_data['path'] = makeCorrectDir($documentroot . '/' . $stats_folder . '/'); + $ins_data['path'] = \Froxlor\FileDir::makeCorrectDir($documentroot . '/' . $stats_folder . '/'); $this->logger()->logAction(ADM_ACTION, LOG_NOTICE, "[API] automatically added " . $stats_folder . " htpasswd for user '" . $loginname . "'"); Database::pexecute($ins_stmt, $ins_data, true, true); diff --git a/lib/Froxlor/Api/Commands/DirOptions.php b/lib/Froxlor/Api/Commands/DirOptions.php index 23c52ac8..22f58757 100644 --- a/lib/Froxlor/Api/Commands/DirOptions.php +++ b/lib/Froxlor/Api/Commands/DirOptions.php @@ -69,9 +69,9 @@ class DirOptions extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc $error500path = $this->getParam('error500path', true, ''); // validation - $path = makeCorrectDir(validate($path, 'path', '', '', array(), true)); + $path = \Froxlor\FileDir::makeCorrectDir(validate($path, 'path', '', '', array(), true)); $userpath = $path; - $path = makeCorrectDir($customer['documentroot'] . '/' . $path); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $path); if (! empty($error404path)) { $error404path = correctErrorDocument($error404path, true); @@ -352,8 +352,8 @@ class DirOptions extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc // do we have to remove the symlink and folder in suexecpath? if ((int) Settings::Get('perl.suexecworkaround') == 1) { $loginname = $customer_data['loginname']; - $suexecpath = makeCorrectDir(Settings::Get('perl.suexecpath') . '/' . $loginname . '/' . md5($result['path']) . '/'); - $perlsymlink = makeCorrectFile($result['path'] . '/cgi-bin'); + $suexecpath = \Froxlor\FileDir::makeCorrectDir(Settings::Get('perl.suexecpath') . '/' . $loginname . '/' . md5($result['path']) . '/'); + $perlsymlink = \Froxlor\FileDir::makeCorrectFile($result['path'] . '/cgi-bin'); // remove symlink if (file_exists($perlsymlink)) { safe_exec('rm -f ' . escapeshellarg($perlsymlink)); diff --git a/lib/Froxlor/Api/Commands/DirProtections.php b/lib/Froxlor/Api/Commands/DirProtections.php index 2c5ad057..b1f61fae 100644 --- a/lib/Froxlor/Api/Commands/DirProtections.php +++ b/lib/Froxlor/Api/Commands/DirProtections.php @@ -60,8 +60,8 @@ class DirProtections extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Res $authname = $this->getParam('directory_authname', true, ''); // validation - $path = makeCorrectDir(validate($path, 'path', '', '', array(), true)); - $path = makeCorrectDir($customer['documentroot'] . '/' . $path); + $path = \Froxlor\FileDir::makeCorrectDir(validate($path, 'path', '', '', array(), true)); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $path); $username = validate($username, 'username', '/^[a-zA-Z0-9][a-zA-Z0-9\-_]+\$?$/', '', array(), true); $authname = validate($authname, 'directory_authname', '/^[a-zA-Z0-9][a-zA-Z0-9\-_ ]+\$?$/', '', array(), true); validate($password, 'password', '', '', array(), true); diff --git a/lib/Froxlor/Api/Commands/Domains.php b/lib/Froxlor/Api/Commands/Domains.php index c145feb6..fd96a6eb 100644 --- a/lib/Froxlor/Api/Commands/Domains.php +++ b/lib/Froxlor/Api/Commands/Domains.php @@ -276,7 +276,7 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn if (Settings::Get('system.documentroot_use_default_value') == 1) { $path_suffix = '/' . $domain; } - $_documentroot = makeCorrectDir($customer['documentroot'] . $path_suffix); + $_documentroot = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . $path_suffix); $registration_date = validate($registration_date, 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array( '0000-00-00', @@ -425,7 +425,7 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn if (strstr($documentroot, ":") !== false) { standard_error('pathmaynotcontaincolon', '', true); } else { - $documentroot = makeCorrectDir($documentroot); + $documentroot = \Froxlor\FileDir::makeCorrectDir($documentroot); } } @@ -835,7 +835,7 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn while ($domain_emails_row = $domain_emails_result_stmt->fetch(\PDO::FETCH_ASSOC)) { if ($domain_emails_row['destination'] != '') { - $domain_emails_row['destination'] = explode(' ', makeCorrectDestination($domain_emails_row['destination'])); + $domain_emails_row['destination'] = explode(' ', \Froxlor\FileDir::makeCorrectDestination($domain_emails_row['destination'])); $email_forwarders += count($domain_emails_row['destination']); if (in_array($domain_emails_row['email_full'], $domain_emails_row['destination'])) { $email_forwarders -= 1; @@ -947,7 +947,7 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn // which would point to the wrong customer, therefore we will re-create that directory if (! empty($documentroot) && $customerid > 0 && $customerid != $result['customerid'] && Settings::Get('panel.allow_domain_change_customer') == '1') { if (Settings::Get('system.documentroot_use_default_value') == 1) { - $_documentroot = makeCorrectDir($customer['documentroot'] . '/' . $result['domain']); + $_documentroot = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $result['domain']); } else { $_documentroot = $customer['documentroot']; } @@ -959,7 +959,7 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn // If path is empty and 'Use domain name as default value for DocumentRoot path' is enabled in settings, // set default path to subdomain or domain name if (Settings::Get('system.documentroot_use_default_value') == 1) { - $documentroot = makeCorrectDir($customer['documentroot'] . '/' . $result['domain']); + $documentroot = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $result['domain']); } else { $documentroot = $customer['documentroot']; } @@ -1062,7 +1062,7 @@ class Domains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEn } if (! preg_match('/^https?\:\/\//', $documentroot)) { - $documentroot = makeCorrectDir($documentroot); + $documentroot = \Froxlor\FileDir::makeCorrectDir($documentroot); } if ($email_only == '1') { diff --git a/lib/Froxlor/Api/Commands/EmailAccounts.php b/lib/Froxlor/Api/Commands/EmailAccounts.php index fac5a27a..104741f3 100644 --- a/lib/Froxlor/Api/Commands/EmailAccounts.php +++ b/lib/Froxlor/Api/Commands/EmailAccounts.php @@ -176,7 +176,7 @@ class EmailAccounts extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Reso WHERE `customerid`= :cid AND `id`= :id "); $params = array( - "destination" => makeCorrectDestination($result['destination']), + "destination" => \Froxlor\FileDir::makeCorrectDestination($result['destination']), "popaccountid" => $popaccountid, "cid" => $customer['customerid'], "id" => $id @@ -460,7 +460,7 @@ class EmailAccounts extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Reso UPDATE `" . TABLE_MAIL_VIRTUAL . "` SET `destination` = :dest, `popaccountid` = '0' WHERE `customerid`= :cid AND `id`= :id "); $params = array( - "dest" => makeCorrectDestination($result['destination']), + "dest" => \Froxlor\FileDir::makeCorrectDestination($result['destination']), "cid" => $customer['customerid'], "id" => $id ); diff --git a/lib/Froxlor/Api/Commands/EmailForwarders.php b/lib/Froxlor/Api/Commands/EmailForwarders.php index 06185200..1f3aca2f 100644 --- a/lib/Froxlor/Api/Commands/EmailForwarders.php +++ b/lib/Froxlor/Api/Commands/EmailForwarders.php @@ -87,7 +87,7 @@ class EmailForwarders extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Re WHERE `customerid`= :cid AND `id`= :id "); $params = array( - "dest" => makeCorrectDestination($result['destination']), + "dest" => \Froxlor\FileDir::makeCorrectDestination($result['destination']), "cid" => $customer['customerid'], "id" => $id ); @@ -189,7 +189,7 @@ class EmailForwarders extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Re WHERE `customerid`= :cid AND `id`= :id "); $params = array( - "dest" => makeCorrectDestination($result['destination']), + "dest" => \Froxlor\FileDir::makeCorrectDestination($result['destination']), "cid" => $customer['customerid'], "id" => $id ); diff --git a/lib/Froxlor/Api/Commands/FpmDaemons.php b/lib/Froxlor/Api/Commands/FpmDaemons.php index 6292b4dd..75faa021 100644 --- a/lib/Froxlor/Api/Commands/FpmDaemons.php +++ b/lib/Froxlor/Api/Commands/FpmDaemons.php @@ -185,7 +185,7 @@ class FpmDaemons extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc $ins_data = array( 'desc' => $description, 'reload_cmd' => $reload_cmd, - 'config_dir' => makeCorrectDir($config_dir), + 'config_dir' => \Froxlor\FileDir::makeCorrectDir($config_dir), 'pm' => $pmanager, 'max_children' => $max_children, 'start_servers' => $start_servers, @@ -302,7 +302,7 @@ class FpmDaemons extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc $upd_data = array( 'desc' => $description, 'reload_cmd' => $reload_cmd, - 'config_dir' => makeCorrectDir($config_dir), + 'config_dir' => \Froxlor\FileDir::makeCorrectDir($config_dir), 'pm' => $pmanager, 'max_children' => $max_children, 'start_servers' => $start_servers, diff --git a/lib/Froxlor/Api/Commands/Ftps.php b/lib/Froxlor/Api/Commands/Ftps.php index 9868117e..6ba325e5 100644 --- a/lib/Froxlor/Api/Commands/Ftps.php +++ b/lib/Froxlor/Api/Commands/Ftps.php @@ -128,7 +128,7 @@ class Ftps extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntit } elseif ($username == $password) { standard_error('passwordshouldnotbeusername', '', true); } else { - $path = makeCorrectDir($customer['documentroot'] . '/' . $path); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $path); $cryptPassword = makeCryptPassword($password); $stmt = Database::prepare("INSERT INTO `" . TABLE_FTP_USERS . "` @@ -191,7 +191,7 @@ class Ftps extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntit 'CUST_NAME' => getCorrectUserSalutation($customer), // < keep this for compatibility 'USR_NAME' => $username, 'USR_PASS' => $password, - 'USR_PATH' => makeCorrectDir(str_replace($customer['documentroot'], "/", $path)) + 'USR_PATH' => \Froxlor\FileDir::makeCorrectDir(str_replace($customer['documentroot'], "/", $path)) ); // get template for mail subject $mail_subject = $this->getMailTemplate($customer, 'mails', 'new_ftpaccount_by_customer_subject', $replace_arr, $this->lng['mails']['new_ftpaccount_by_customer']['subject']); @@ -375,7 +375,7 @@ class Ftps extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntit // path update? if ($path != '') { - $path = makeCorrectDir($customer['documentroot'] . '/' . $path); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $path); if ($path != $result['homedir']) { $stmt = Database::prepare("UPDATE `" . TABLE_FTP_USERS . "` diff --git a/lib/Froxlor/Api/Commands/IpsAndPorts.php b/lib/Froxlor/Api/Commands/IpsAndPorts.php index 1ccc61e9..c25d7820 100644 --- a/lib/Froxlor/Api/Commands/IpsAndPorts.php +++ b/lib/Froxlor/Api/Commands/IpsAndPorts.php @@ -175,23 +175,23 @@ class IpsAndPorts extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resour } if ($ssl_cert_file != '') { - $ssl_cert_file = makeCorrectFile($ssl_cert_file); + $ssl_cert_file = \Froxlor\FileDir::makeCorrectFile($ssl_cert_file); } if ($ssl_key_file != '') { - $ssl_key_file = makeCorrectFile($ssl_key_file); + $ssl_key_file = \Froxlor\FileDir::makeCorrectFile($ssl_key_file); } if ($ssl_ca_file != '') { - $ssl_ca_file = makeCorrectFile($ssl_ca_file); + $ssl_ca_file = \Froxlor\FileDir::makeCorrectFile($ssl_ca_file); } if ($ssl_cert_chainfile != '') { - $ssl_cert_chainfile = makeCorrectFile($ssl_cert_chainfile); + $ssl_cert_chainfile = \Froxlor\FileDir::makeCorrectFile($ssl_cert_chainfile); } if (strlen(trim($docroot)) > 0) { - $docroot = makeCorrectDir($docroot); + $docroot = \Froxlor\FileDir::makeCorrectDir($docroot); } else { $docroot = ''; } @@ -368,23 +368,23 @@ class IpsAndPorts extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resour } if ($ssl_cert_file != '') { - $ssl_cert_file = makeCorrectFile($ssl_cert_file); + $ssl_cert_file = \Froxlor\FileDir::makeCorrectFile($ssl_cert_file); } if ($ssl_key_file != '') { - $ssl_key_file = makeCorrectFile($ssl_key_file); + $ssl_key_file = \Froxlor\FileDir::makeCorrectFile($ssl_key_file); } if ($ssl_ca_file != '') { - $ssl_ca_file = makeCorrectFile($ssl_ca_file); + $ssl_ca_file = \Froxlor\FileDir::makeCorrectFile($ssl_ca_file); } if ($ssl_cert_chainfile != '') { - $ssl_cert_chainfile = makeCorrectFile($ssl_cert_chainfile); + $ssl_cert_chainfile = \Froxlor\FileDir::makeCorrectFile($ssl_cert_chainfile); } if (strlen(trim($docroot)) > 0) { - $docroot = makeCorrectDir($docroot); + $docroot = \Froxlor\FileDir::makeCorrectDir($docroot); } else { $docroot = ''; } diff --git a/lib/Froxlor/Api/Commands/PhpSettings.php b/lib/Froxlor/Api/Commands/PhpSettings.php index 9a25ea3f..840b5eef 100644 --- a/lib/Froxlor/Api/Commands/PhpSettings.php +++ b/lib/Froxlor/Api/Commands/PhpSettings.php @@ -238,7 +238,7 @@ class PhpSettings extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resour $description = validate($description, 'description', '', '', array(), true); $phpsettings = validate(str_replace("\r\n", "\n", $phpsettings), 'phpsettings', '/^[^\0]*$/', '', array(), true); if (Settings::Get('system.mod_fcgid') == 1) { - $binary = makeCorrectFile(validate($binary, 'binary', '', '', array(), true)); + $binary = \Froxlor\FileDir::makeCorrectFile(validate($binary, 'binary', '', '', array(), true)); $file_extensions = validate($file_extensions, 'file_extensions', '/^[a-zA-Z0-9\s]*$/', '', array(), true); $mod_fcgid_starter = validate($mod_fcgid_starter, 'mod_fcgid_starter', '/^[0-9]*$/', '', array( '-1', @@ -433,7 +433,7 @@ class PhpSettings extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resour $description = validate($description, 'description', '', '', array(), true); $phpsettings = validate(str_replace("\r\n", "\n", $phpsettings), 'phpsettings', '/^[^\0]*$/', '', array(), true); if (Settings::Get('system.mod_fcgid') == 1) { - $binary = makeCorrectFile(validate($binary, 'binary', '', '', array(), true)); + $binary = \Froxlor\FileDir::makeCorrectFile(validate($binary, 'binary', '', '', array(), true)); $file_extensions = validate($file_extensions, 'file_extensions', '/^[a-zA-Z0-9\s]*$/', '', array(), true); $mod_fcgid_starter = validate($mod_fcgid_starter, 'mod_fcgid_starter', '/^[0-9]*$/', '', array( '-1', diff --git a/lib/Froxlor/Api/Commands/SubDomains.php b/lib/Froxlor/Api/Commands/SubDomains.php index e124707f..b21a53fc 100644 --- a/lib/Froxlor/Api/Commands/SubDomains.php +++ b/lib/Froxlor/Api/Commands/SubDomains.php @@ -869,9 +869,9 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc // If path is empty or '/' and 'Use domain name as default value for DocumentRoot path' is enabled in settings, // set default path to subdomain or domain name if ((($path == '') || ($path == '/')) && Settings::Get('system.documentroot_use_default_value') == 1) { - $path = makeCorrectDir($customer['documentroot'] . '/' . $completedomain); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $completedomain); } else { - $path = makeCorrectDir($customer['documentroot'] . '/' . $path); + $path = \Froxlor\FileDir::makeCorrectDir($customer['documentroot'] . '/' . $path); } } else { // no it's not, create a redirect diff --git a/lib/Froxlor/Cli/Action/ConfigServicesAction.php b/lib/Froxlor/Cli/Action/ConfigServicesAction.php index f4238de1..e83f66f6 100644 --- a/lib/Froxlor/Cli/Action/ConfigServicesAction.php +++ b/lib/Froxlor/Cli/Action/ConfigServicesAction.php @@ -346,12 +346,12 @@ class ConfigServicesAction extends \Froxlor\Cli\Action '' => Settings::Get('system.vmail_uid'), '' => Settings::Get('system.vmail_gid'), '' => (Settings::Get('system.use_ssl') == '1') ? 'imaps pop3s' : '', - '' => makeCorrectDir($customer_tmpdir), - '' => makeCorrectDir(FROXLOR_INSTALL_DIR), - '' => makeCorrectDir(Settings::Get('system.bindconf_directory')), + '' => \Froxlor\FileDir::makeCorrectDir($customer_tmpdir), + '' => \Froxlor\FileDir::makeCorrectDir(FROXLOR_INSTALL_DIR), + '' => \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.bindconf_directory')), '' => Settings::Get('system.apachereload_command'), - '' => makeCorrectDir(Settings::Get('system.logfiles_directory')), - '' => makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')), + '' => \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.logfiles_directory')), + '' => \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')), '' => Settings::Get('system.httpgroup') ); return $replace_arr; diff --git a/lib/Froxlor/Cron/Dns/Bind.php b/lib/Froxlor/Cron/Dns/Bind.php index a7e60e09..5f538606 100644 --- a/lib/Froxlor/Cron/Dns/Bind.php +++ b/lib/Froxlor/Cron/Dns/Bind.php @@ -32,7 +32,7 @@ class Bind extends DnsBase // check for subfolder in bind-config-directory if (! file_exists(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.bindconf_directory') . '/domains/'))) { - $this->_logger->logAction(CRON_ACTION, LOG_NOTICE, 'mkdir ' . escapeshellarg(makeCorrectDir(Settings::Get('system.bindconf_directory') . '/domains/'))); + $this->_logger->logAction(CRON_ACTION, LOG_NOTICE, 'mkdir ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.bindconf_directory') . '/domains/'))); safe_exec('mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.bindconf_directory') . '/domains/'))); } @@ -80,7 +80,7 @@ class Bind extends DnsBase if ($domain['ismainbutsubto'] == 0) { $zoneContent = (string) createDomainZone(($domain['id'] == 'none') ? $domain : $domain['id'], $isFroxlorHostname); $domain['zonefile'] = 'domains/' . $domain['domain'] . '.zone'; - $zonefile_name = makeCorrectFile(Settings::Get('system.bindconf_directory') . '/' . $domain['zonefile']); + $zonefile_name = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.bindconf_directory') . '/' . $domain['zonefile']); $zonefile_handler = fopen($zonefile_name, 'w'); fwrite($zonefile_handler, $zoneContent . $subzones); fclose($zonefile_handler); @@ -148,7 +148,7 @@ class Bind extends DnsBase foreach ($its as $it) { if ($it->isFile()) { // remove file - \Froxlor\FileDir::safe_exec('rm -f ' . escapeshellarg(makeCorrectFile($its->getPathname()))); + \Froxlor\FileDir::safe_exec('rm -f ' . escapeshellarg(\Froxlor\FileDir::makeCorrectFile($its->getPathname()))); } } } diff --git a/lib/Froxlor/Cron/Dns/DnsBase.php b/lib/Froxlor/Cron/Dns/DnsBase.php index 0bd93e4e..633cdd3d 100644 --- a/lib/Froxlor/Cron/Dns/DnsBase.php +++ b/lib/Froxlor/Cron/Dns/DnsBase.php @@ -181,9 +181,9 @@ abstract class DnsBase public function writeDKIMconfigs() { if (Settings::Get('dkim.use_dkim') == '1') { - if (! file_exists(makeCorrectDir(Settings::Get('dkim.dkim_prefix')))) { - $this->_logger->logAction(CRON_ACTION, LOG_NOTICE, 'mkdir -p ' . escapeshellarg(makeCorrectDir(Settings::Get('dkim.dkim_prefix')))); - safe_exec('mkdir -p ' . escapeshellarg(makeCorrectDir(Settings::Get('dkim.dkim_prefix')))); + if (! file_exists(\Froxlor\FileDir::makeCorrectDir(Settings::Get('dkim.dkim_prefix')))) { + $this->_logger->logAction(CRON_ACTION, LOG_NOTICE, 'mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('dkim.dkim_prefix')))); + safe_exec('mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('dkim.dkim_prefix')))); } $dkimdomains = ''; @@ -195,18 +195,18 @@ abstract class DnsBase while ($domain = $result_domains_stmt->fetch(\PDO::FETCH_ASSOC)) { - $privkey_filename = makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id']); - $pubkey_filename = makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id'] . '.public'); + $privkey_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id']); + $pubkey_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id'] . '.public'); if ($domain['dkim_privkey'] == '' || $domain['dkim_pubkey'] == '') { $max_dkim_id_stmt = Database::query("SELECT MAX(`dkim_id`) as `max_dkim_id` FROM `" . TABLE_PANEL_DOMAINS . "`"); $max_dkim_id = $max_dkim_id_stmt->fetch(\PDO::FETCH_ASSOC); $domain['dkim_id'] = (int) $max_dkim_id['max_dkim_id'] + 1; - $privkey_filename = makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id']); + $privkey_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id']); safe_exec('openssl genrsa -out ' . escapeshellarg($privkey_filename) . ' ' . Settings::Get('dkim.dkim_keylength')); $domain['dkim_privkey'] = file_get_contents($privkey_filename); safe_exec("chmod 0640 " . escapeshellarg($privkey_filename)); - $pubkey_filename = makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id'] . '.public'); + $pubkey_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/dkim_' . $domain['dkim_id'] . '.public'); safe_exec('openssl rsa -in ' . escapeshellarg($privkey_filename) . ' -pubout -outform pem -out ' . escapeshellarg($pubkey_filename)); $domain['dkim_pubkey'] = file_get_contents($pubkey_filename); safe_exec("chmod 0664 " . escapeshellarg($pubkey_filename)); @@ -244,11 +244,11 @@ abstract class DnsBase $dkimkeys .= "*@" . $domain['domain'] . ":" . $domain['domain'] . ":" . $privkey_filename . "\n"; } - $dkimdomains_filename = makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/' . Settings::Get('dkim.dkim_domains')); + $dkimdomains_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/' . Settings::Get('dkim.dkim_domains')); $dkimdomains_file_handler = fopen($dkimdomains_filename, "w"); fwrite($dkimdomains_file_handler, $dkimdomains); fclose($dkimdomains_file_handler); - $dkimkeys_filename = makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/' . Settings::Get('dkim.dkim_dkimkeys')); + $dkimkeys_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('dkim.dkim_prefix') . '/' . Settings::Get('dkim.dkim_dkimkeys')); $dkimkeys_file_handler = fopen($dkimkeys_filename, "w"); fwrite($dkimkeys_file_handler, $dkimkeys); fclose($dkimkeys_file_handler); diff --git a/lib/Froxlor/Cron/Http/Apache.php b/lib/Froxlor/Cron/Http/Apache.php index c11f9bf0..37c37d2a 100644 --- a/lib/Froxlor/Cron/Http/Apache.php +++ b/lib/Froxlor/Cron/Http/Apache.php @@ -105,13 +105,13 @@ class Apache extends HttpConfigBase } $this->virtualhosts_data[$vhosts_filename] .= ' ' . "\n"; - $ocsp_cache_filename = makeCorrectFile($vhosts_folder . '/03_froxlor_ocsp_cache.conf'); + $ocsp_cache_filename = \Froxlor\FileDir::makeCorrectFile($vhosts_folder . '/03_froxlor_ocsp_cache.conf'); if (Settings::Get('system.use_ssl') == '1' && Settings::Get('system.apache24') == 1) { $this->virtualhosts_data[$ocsp_cache_filename] = 'SSLStaplingCache ' . Settings::Get('system.apache24_ocsp_cache_path') . "\n"; } else { if (file_exists($ocsp_cache_filename)) { \Froxlor\FroxlorLogger::getInstance()->logAction(CRON_ACTION, LOG_NOTICE, 'apache::_createStandardDirectoryEntry: unlinking ' . basename($ocsp_cache_filename)); - unlink(makeCorrectFile($ocsp_cache_filename)); + unlink(\Froxlor\FileDir::makeCorrectFile($ocsp_cache_filename)); } } } diff --git a/lib/Froxlor/Cron/Http/ConfigIO.php b/lib/Froxlor/Cron/Http/ConfigIO.php index bfe7fc62..72babc11 100644 --- a/lib/Froxlor/Cron/Http/ConfigIO.php +++ b/lib/Froxlor/Cron/Http/ConfigIO.php @@ -275,7 +275,7 @@ class ConfigIO // now get rid of old stuff // (but append /*.conf so we don't delete the directory) $configdir .= '/*.conf'; - \Froxlor\FileDir::safe_exec('rm -f ' . makeCorrectFile($configdir)); + \Froxlor\FileDir::safe_exec('rm -f ' . \Froxlor\FileDir::makeCorrectFile($configdir)); } else { \Froxlor\FileDir::safe_exec('mkdir -p ' . $configdir); } diff --git a/lib/Froxlor/Cron/Http/DomainSSL.php b/lib/Froxlor/Cron/Http/DomainSSL.php index ce6682bc..3a569b43 100644 --- a/lib/Froxlor/Cron/Http/DomainSSL.php +++ b/lib/Froxlor/Cron/Http/DomainSSL.php @@ -63,15 +63,15 @@ class DomainSSL // check if it's an array and if the most important field is set if (is_array($dom_certs) && isset($dom_certs['ssl_cert_file']) && $dom_certs['ssl_cert_file'] != '') { // get destination path - $sslcertpath = makeCorrectDir(Settings::Get('system.customer_ssl_path')); + $sslcertpath = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.customer_ssl_path')); // create path if it does not exist if (! file_exists($sslcertpath)) { safe_exec('mkdir -p ' . escapeshellarg($sslcertpath)); } // make correct files for the certificates $ssl_files = array( - 'ssl_cert_file' => makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '.crt'), - 'ssl_key_file' => makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '.key') + 'ssl_cert_file' => \Froxlor\FileDir::makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '.crt'), + 'ssl_key_file' => \Froxlor\FileDir::makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '.key') ); if (Settings::Get('system.webserver') == 'lighttpd') { @@ -85,19 +85,19 @@ class DomainSSL $ssl_files['ssl_cert_chainfile'] = ''; // set them if they are != empty if ($dom_certs['ssl_ca_file'] != '') { - $ssl_files['ssl_ca_file'] = makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '_CA.pem'); + $ssl_files['ssl_ca_file'] = \Froxlor\FileDir::makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '_CA.pem'); } if ($dom_certs['ssl_cert_chainfile'] != '') { if (Settings::Get('system.webserver') == 'nginx') { // put ca.crt in my.crt, as nginx does not support a separate chain file. $dom_certs['ssl_cert_file'] = trim($dom_certs['ssl_cert_file']) . "\n" . trim($dom_certs['ssl_cert_chainfile']) . "\n"; } else { - $ssl_files['ssl_cert_chainfile'] = makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '_chain.pem'); + $ssl_files['ssl_cert_chainfile'] = \Froxlor\FileDir::makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '_chain.pem'); } } // will only be generated to be used externally, froxlor does not need this if ($dom_certs['ssl_fullchain_file'] != '') { - $ssl_files['ssl_fullchain_file'] = makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '_fullchain.pem'); + $ssl_files['ssl_fullchain_file'] = \Froxlor\FileDir::makeCorrectFile($sslcertpath . '/' . $domain['domain'] . '_fullchain.pem'); } // create them on the filesystem foreach ($ssl_files as $type => $filename) { diff --git a/lib/Froxlor/Cron/Http/HttpConfigBase.php b/lib/Froxlor/Cron/Http/HttpConfigBase.php index d3123ffa..fdb8f2f7 100644 --- a/lib/Froxlor/Cron/Http/HttpConfigBase.php +++ b/lib/Froxlor/Cron/Http/HttpConfigBase.php @@ -61,13 +61,13 @@ class HttpConfigBase { if (! empty($ip_port) && $ip_port['docroot'] == '') { if (Settings::Get('system.froxlordirectlyviahostname')) { - $mypath = makeCorrectDir(dirname(dirname(dirname(__FILE__)))); + $mypath = \Froxlor\FileDir::makeCorrectDir(dirname(dirname(dirname(__FILE__)))); } else { - $mypath = makeCorrectDir(dirname(dirname(dirname(dirname(__FILE__))))); + $mypath = \Froxlor\FileDir::makeCorrectDir(dirname(dirname(dirname(dirname(__FILE__))))); } } else { // user-defined docroot, #417 - $mypath = makeCorrectDir($ip_port['docroot']); + $mypath = \Froxlor\FileDir::makeCorrectDir($ip_port['docroot']); } return $mypath; } diff --git a/lib/Froxlor/Cron/Http/Lighttpd.php b/lib/Froxlor/Cron/Http/Lighttpd.php index 838149e5..6659e5d1 100644 --- a/lib/Froxlor/Cron/Http/Lighttpd.php +++ b/lib/Froxlor/Cron/Http/Lighttpd.php @@ -57,7 +57,7 @@ class Lighttpd extends HttpConfigBase foreach ($restart_cmds as $restart_cmd) { // check whether the config dir is empty (no domains uses this daemon) // so we need to create a dummy - $_conffiles = glob(makeCorrectFile($restart_cmd['config_dir'] . "/*.conf")); + $_conffiles = glob(\Froxlor\FileDir::makeCorrectFile($restart_cmd['config_dir'] . "/*.conf")); if ($_conffiles === false || empty($_conffiles)) { $this->logger->logAction(CRON_ACTION, LOG_INFO, 'lighttpd::reload: fpm config directory "' . $restart_cmd['config_dir'] . '" is empty. Creating dummy.'); Fpm::createDummyPool($restart_cmd['config_dir']); @@ -86,7 +86,7 @@ class Lighttpd extends HttpConfigBase } $this->logger->logAction(CRON_ACTION, LOG_INFO, 'lighttpd::createIpPort: creating ip/port settings for ' . $ip . ":" . $port); - $vhost_filename = makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/10_froxlor_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf'); + $vhost_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/10_froxlor_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf'); if (! isset($this->lighttpd_data[$vhost_filename])) { $this->lighttpd_data[$vhost_filename] = ''; @@ -254,7 +254,7 @@ class Lighttpd extends HttpConfigBase $this->lighttpd_data[$vhost_filename] .= 'ssl.engine = "enable"' . "\n"; $this->lighttpd_data[$vhost_filename] .= 'ssl.use-compression = "disable"' . "\n"; if (!empty(Settings::Get('system.dhparams_file'))) { - $dhparams = makeCorrectFile(Settings::Get('system.dhparams_file')); + $dhparams = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.dhparams_file')); if (!file_exists($dhparams)) { safe_exec('openssl dhparam -out '.escapeshellarg($dhparams).' 4096'); } @@ -265,7 +265,7 @@ class Lighttpd extends HttpConfigBase $this->lighttpd_data[$vhost_filename] .= 'ssl.use-sslv3 = "disable"' . "\n"; $this->lighttpd_data[$vhost_filename] .= 'ssl.cipher-list = "' . Settings::Get('system.ssl_cipher_list') . '"' . "\n"; $this->lighttpd_data[$vhost_filename] .= 'ssl.honor-cipher-order = "enable"' . "\n"; - $this->lighttpd_data[$vhost_filename] .= 'ssl.pemfile = "' . makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n"; + $this->lighttpd_data[$vhost_filename] .= 'ssl.pemfile = "' . \Froxlor\FileDir::makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n"; if ($domain['ssl_ca_file'] != '') { // check for existence, #1485 @@ -273,7 +273,7 @@ class Lighttpd extends HttpConfigBase $this->logger->logAction(CRON_ACTION, LOG_ERR, $ip . ':' . $port . ' :: certificate CA file "' . $domain['ssl_ca_file'] . '" does not exist! Cannot create ssl-directives'); echo $ip . ':' . port . ' :: certificate CA file "' . $domain['ssl_ca_file'] . '" does not exist! SSL-directives might not be working' . "\n"; } else { - $this->lighttpd_data[$vhost_filename] .= 'ssl.ca-file = "' . makeCorrectFile($domain['ssl_ca_file']) . '"' . "\n"; + $this->lighttpd_data[$vhost_filename] .= 'ssl.ca-file = "' . \Froxlor\FileDir::makeCorrectFile($domain['ssl_ca_file']) . '"' . "\n"; } } } @@ -310,7 +310,7 @@ class Lighttpd extends HttpConfigBase private function _createStandardErrorHandler() { if (Settings::Get('defaultwebsrverrhandler.enabled') == '1' && Settings::Get('defaultwebsrverrhandler.err404') != '') { - $vhost_filename = makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/05_froxlor_default_errorhandler.conf'); + $vhost_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/05_froxlor_default_errorhandler.conf'); if (! isset($this->lighttpd_data[$vhost_filename])) { $this->lighttpd_data[$vhost_filename] = ''; @@ -318,7 +318,7 @@ class Lighttpd extends HttpConfigBase $defhandler = Settings::Get('defaultwebsrverrhandler.err404'); if (! validateUrl($defhandler)) { - $defhandler = makeCorrectFile($defhandler); + $defhandler = \Froxlor\FileDir::makeCorrectFile($defhandler); } $this->lighttpd_data[$vhost_filename] = 'server.error-handler-404 = "' . $defhandler . '"'; } @@ -337,7 +337,7 @@ class Lighttpd extends HttpConfigBase $htaccess_text = ''; while ($row_htpasswds = $result_htpasswds_stmt->fetch(\PDO::FETCH_ASSOC)) { - $row_htpasswds['path'] = makeCorrectDir($row_htpasswds['path']); + $row_htpasswds['path'] = \Froxlor\FileDir::makeCorrectDir($row_htpasswds['path']); mkDirWithCorrectOwnership($domain['documentroot'], $row_htpasswds['path'], $domain['guid'], $domain['guid']); $filename = $row_htpasswds['customerid'] . '-' . md5($row_htpasswds['path']) . '.htpasswd'; @@ -352,11 +352,11 @@ class Lighttpd extends HttpConfigBase } $htaccess_path = substr($row_htpasswds['path'], strlen($domain['documentroot']) - 1); - $htaccess_path = makeCorrectDir($htaccess_path); + $htaccess_path = \Froxlor\FileDir::makeCorrectDir($htaccess_path); $htaccess_text .= ' $HTTP["url"] =~ "^' . $htaccess_path . '" {' . "\n"; $htaccess_text .= ' auth.backend = "htpasswd"' . "\n"; - $htaccess_text .= ' auth.backend.htpasswd.userfile = "' . makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; + $htaccess_text .= ' auth.backend.htpasswd.userfile = "' . \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; $htaccess_text .= ' auth.require = ( ' . "\n"; $htaccess_text .= ' "' . $htaccess_path . '" =>' . "\n"; $htaccess_text .= ' (' . "\n"; @@ -392,12 +392,12 @@ class Lighttpd extends HttpConfigBase foreach ($domains as $domain) { if (is_dir(Settings::Get('system.apacheconf_vhost'))) { - safe_exec('mkdir -p ' . escapeshellarg(makeCorrectDir(Settings::Get('system.apacheconf_vhost') . '/vhosts/'))); + safe_exec('mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost') . '/vhosts/'))); // determine correct include-path: // e.g. '/etc/lighttpd/conf-enabled/vhosts/ has to become' // 'conf-enabled/vhosts/' (damn debian, but luckily works too on other distros) - $_tmp_path = substr(makeCorrectDir(Settings::Get('system.apacheconf_vhost')), 0, - 1); + $_tmp_path = substr(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')), 0, - 1); $_pos = strrpos($_tmp_path, '/'); $_inc_path = substr($_tmp_path, $_pos + 1); @@ -417,7 +417,7 @@ class Lighttpd extends HttpConfigBase $vhost_no = (int) $vhost_no += 10; } - $vhost_filename = makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/vhosts/' . $vhost_no . '_' . $domain['domain'] . '.conf'); + $vhost_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/vhosts/' . $vhost_no . '_' . $domain['domain'] . '.conf'); $included_vhosts[] = $_inc_path . '/vhosts/' . $vhost_no . '_' . $domain['domain'] . '.conf'; } @@ -576,7 +576,7 @@ class Lighttpd extends HttpConfigBase //$ssl_settings .= 'ssl.engine = "enable"' . "\n"; $ssl_settings .= 'ssl.use-compression = "disable"' . "\n"; if (!empty(Settings::Get('system.dhparams_file'))) { - $dhparams = makeCorrectFile(Settings::Get('system.dhparams_file')); + $dhparams = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.dhparams_file')); if (!file_exists($dhparams)) { safe_exec('openssl dhparam -out '.escapeshellarg($dhparams).' 4096'); } @@ -587,10 +587,10 @@ class Lighttpd extends HttpConfigBase $ssl_settings .= 'ssl.use-sslv3 = "disable"' . "\n"; $ssl_settings .= 'ssl.cipher-list = "' . Settings::Get('system.ssl_cipher_list') . '"' . "\n"; $ssl_settings .= 'ssl.honor-cipher-order = "enable"' . "\n"; - $ssl_settings .= 'ssl.pemfile = "' . makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n"; + $ssl_settings .= 'ssl.pemfile = "' . \Froxlor\FileDir::makeCorrectFile($domain['ssl_cert_file']) . '"' . "\n"; if ($domain['ssl_ca_file'] != '') { - $ssl_settings .= 'ssl.ca-file = "' . makeCorrectFile($domain['ssl_ca_file']) . '"' . "\n"; + $ssl_settings .= 'ssl.ca-file = "' . \Froxlor\FileDir::makeCorrectFile($domain['ssl_ca_file']) . '"' . "\n"; } if ($domain['hsts'] >= 0) { @@ -626,7 +626,7 @@ class Lighttpd extends HttpConfigBase // error log cannot be set conditionally see // https://redmine.lighttpd.net/issues/665 if ($domain['writeaccesslog']) { - $access_log = makeCorrectFile(Settings::Get('system.logfiles_directory') . $domain['loginname'] . $speciallogfile . '-access.log'); + $access_log = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . $domain['loginname'] . $speciallogfile . '-access.log'); // Create the logfile if it does not exist (fixes #46) touch($access_log); chown($access_log, Settings::Get('system.httpuser')); @@ -703,7 +703,7 @@ class Lighttpd extends HttpConfigBase if (! empty($row['error404path'])) { $defhandler = $row['error404path']; if (! validateUrl($defhandler)) { - $defhandler = makeCorrectFile($domain['documentroot'] . '/' . $defhandler); + $defhandler = \Froxlor\FileDir::makeCorrectFile($domain['documentroot'] . '/' . $defhandler); } $error_string .= ' server.error-handler-404 = "' . $defhandler . '"' . "\n\n"; } @@ -715,7 +715,7 @@ class Lighttpd extends HttpConfigBase $error_string = ''; } - $path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); + $path = \Froxlor\FileDir::makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']); // We need to remove the last slash, otherwise the regex wouldn't work @@ -730,7 +730,7 @@ class Lighttpd extends HttpConfigBase } if (customerHasPerlEnabled($domain['customerid']) && $row['options_cgi'] != '0') { - $path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); + $path = \Froxlor\FileDir::makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']); // We need to remove the last slash, otherwise the regex wouldn't work @@ -739,8 +739,8 @@ class Lighttpd extends HttpConfigBase } $path_options .= ' $HTTP["url"] =~ "^' . $path . '($|/)" {' . "\n"; $path_options .= "\t" . 'cgi.assign = (' . "\n"; - $path_options .= "\t\t" . '".pl" => "' . makeCorrectFile(Settings::Get('system.perl_path')) . '",' . "\n"; - $path_options .= "\t\t" . '".cgi" => "' . makeCorrectFile(Settings::Get('system.perl_path')) . '"' . "\n"; + $path_options .= "\t\t" . '".pl" => "' . \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.perl_path')) . '",' . "\n"; + $path_options .= "\t\t" . '".cgi" => "' . \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.perl_path')) . '"' . "\n"; $path_options .= "\t" . ')' . "\n"; $path_options .= ' }' . "\n\n"; } @@ -766,21 +766,21 @@ class Lighttpd extends HttpConfigBase if ($this->auth_backend_loaded[$domain['ipandport']] != 'yes') { $auth_backend_loaded[$domain['ipandport']] = 'yes'; $diroption_text .= 'auth.backend = "htpasswd"' . "\n"; - $diroption_text .= 'auth.backend.htpasswd.userfile = "' . makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; + $diroption_text .= 'auth.backend.htpasswd.userfile = "' . \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; $this->needed_htpasswds[$filename] = $row_htpasswds['username'] . ':' . $row_htpasswds['password'] . "\n"; $diroption_text .= 'auth.require = ( ' . "\n"; $previous_domain_id = '1'; } elseif ($this->auth_backend_loaded[$domain['ssl_ipandport']] != 'yes') { $auth_backend_loaded[$domain['ssl_ipandport']] = 'yes'; $diroption_text .= 'auth.backend= "htpasswd"' . "\n"; - $diroption_text .= 'auth.backend.htpasswd.userfile = "' . makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; + $diroption_text .= 'auth.backend.htpasswd.userfile = "' . \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; $this->needed_htpasswds[$filename] = $row_htpasswds['username'] . ':' . $row_htpasswds['password'] . "\n"; $diroption_text .= 'auth.require = ( ' . "\n"; $previous_domain_id = '1'; } } - $diroption_text .= '"' . makeCorrectDir($row_htpasswds['path']) . '" =>' . "\n"; + $diroption_text .= '"' . \Froxlor\FileDir::makeCorrectDir($row_htpasswds['path']) . '" =>' . "\n"; $diroption_text .= '(' . "\n"; $diroption_text .= ' "method" => "basic",' . "\n"; $diroption_text .= ' "realm" => "' . $row_htpasswds['authname'] . '",' . "\n"; @@ -796,7 +796,7 @@ class Lighttpd extends HttpConfigBase } } - return ' auth.backend.htpasswd.userfile = "' . makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; + return ' auth.backend.htpasswd.userfile = "' . \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $filename) . '"' . "\n"; } protected function getServerNames($domain) @@ -870,7 +870,7 @@ class Lighttpd extends HttpConfigBase if ($domain['deactivated'] == '1' && Settings::Get('system.deactivateddocroot') != '') { $webroot_text .= ' # Using docroot for deactivated users...' . "\n"; - $webroot_text .= ' server.document-root = "' . makeCorrectDir(Settings::Get('system.deactivateddocroot')) . "\"\n"; + $webroot_text .= ' server.document-root = "' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.deactivateddocroot')) . "\"\n"; $this->_deactivated = true; } else { if ($ssl === false && $domain['ssl_redirect'] == '1') { @@ -888,7 +888,7 @@ class Lighttpd extends HttpConfigBase $webroot_text .= "\t" . '"/" => "' . $redirect_domain . '"' . "\n"; $webroot_text .= ' )' . "\n"; } else { - $webroot_text .= ' server.document-root = "' . makeCorrectDir($domain['documentroot']) . "\"\n"; + $webroot_text .= ' server.document-root = "' . \Froxlor\FileDir::makeCorrectDir($domain['documentroot']) . "\"\n"; } $this->_deactivated = false; } @@ -906,34 +906,34 @@ class Lighttpd extends HttpConfigBase if ($domain['speciallogfile'] == '1') { if ($domain['parentdomainid'] == '0') { if (Settings::Get('system.awstats_enabled') == '1') { - $stats_text .= ' alias.url = ( "/awstats/" => "' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . '" )' . "\n"; - $stats_text .= ' alias.url += ( "/awstats-icon" => "' . makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; + $stats_text .= ' alias.url = ( "/awstats/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . '" )' . "\n"; + $stats_text .= ' alias.url += ( "/awstats-icon" => "' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; } else { - $stats_text .= ' alias.url = ( "/webalizer/" => "' . makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['domain']) . '/" )' . "\n"; + $stats_text .= ' alias.url = ( "/webalizer/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['domain']) . '/" )' . "\n"; } } else { if (Settings::Get('system.awstats_enabled') == '1') { - $stats_text .= ' alias.url = ( "/awstats/" => "' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['parentdomain']) . '" )' . "\n"; - $stats_text .= ' alias.url += ( "/awstats-icon" => "' . makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; + $stats_text .= ' alias.url = ( "/awstats/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['parentdomain']) . '" )' . "\n"; + $stats_text .= ' alias.url += ( "/awstats-icon" => "' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; } else { - $stats_text .= ' alias.url = ( "/webalizer/" => "' . makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['parentdomain']) . '/" )' . "\n"; + $stats_text .= ' alias.url = ( "/webalizer/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/webalizer/' . $domain['parentdomain']) . '/" )' . "\n"; } } } else { if ($domain['customerroot'] != $domain['documentroot']) { if (Settings::Get('system.awstats_enabled') == '1') { - $stats_text .= ' alias.url = ( "/awstats/" => "' . makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . '" )' . "\n"; - $stats_text .= ' alias.url += ( "/awstats-icon" => "' . makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; + $stats_text .= ' alias.url = ( "/awstats/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/awstats/' . $domain['domain']) . '" )' . "\n"; + $stats_text .= ' alias.url += ( "/awstats-icon" => "' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; } else { - $stats_text .= ' alias.url = ( "/webalizer/" => "' . makeCorrectFile($domain['customerroot'] . '/webalizer/') . '" )' . "\n"; + $stats_text .= ' alias.url = ( "/webalizer/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/webalizer/') . '" )' . "\n"; } } // if the docroots are equal, we still have to set an alias for awstats // because the stats are in /awstats/[domain], not just /awstats/ // also, the awstats-icons are someplace else too! // -> webalizer does not need this! elseif (Settings::Get('system.awstats_enabled') == '1') { - $stats_text .= ' alias.url = ( "/awstats/" => "' . makeCorrectFile($domain['documentroot'] . '/awstats/' . $domain['domain']) . '" )' . "\n"; - $stats_text .= ' alias.url += ( "/awstats-icon" => "' . makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; + $stats_text .= ' alias.url = ( "/awstats/" => "' . \Froxlor\FileDir::makeCorrectFile($domain['documentroot'] . '/awstats/' . $domain['domain']) . '" )' . "\n"; + $stats_text .= ' alias.url += ( "/awstats-icon" => "' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.awstats_icons')) . '" )' . "\n"; } } @@ -969,8 +969,8 @@ class Lighttpd extends HttpConfigBase fclose($vhosts_file_handler); } else { if (! file_exists(Settings::Get('system.apacheconf_vhost'))) { - $this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'lighttpd::writeConfigs: mkdir ' . escapeshellarg(makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); - safe_exec('mkdir ' . escapeshellarg(makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); + $this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'lighttpd::writeConfigs: mkdir ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); + safe_exec('mkdir ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); } // Write a single file for every vhost @@ -993,10 +993,10 @@ class Lighttpd extends HttpConfigBase if ($htpasswdDir->isConfigDir()) { foreach ($this->needed_htpasswds as $key => $data) { if (! is_dir(Settings::Get('system.apacheconf_htpasswddir'))) { - mkdir(makeCorrectDir(Settings::Get('system.apacheconf_htpasswddir'))); + mkdir(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_htpasswddir'))); } - $filename = makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $key); + $filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $key); $htpasswd_handler = fopen($filename, 'w'); fwrite($htpasswd_handler, $data); fclose($htpasswd_handler); diff --git a/lib/Froxlor/Cron/Http/LighttpdFcgi.php b/lib/Froxlor/Cron/Http/LighttpdFcgi.php index a8f0d6e5..e958c997 100644 --- a/lib/Froxlor/Cron/Http/LighttpdFcgi.php +++ b/lib/Froxlor/Cron/Http/LighttpdFcgi.php @@ -94,7 +94,7 @@ class LighttpdFcgi extends Lighttpd public function createOwnVhostStarter() { if (Settings::Get('phpfpm.enabled') == '1' && Settings::Get('phpfpm.enabled_ownvhost') == '1') { - $mypath = makeCorrectDir(dirname(dirname(dirname(__FILE__)))); // /var/www/froxlor, needed for chown + $mypath = \Froxlor\FileDir::makeCorrectDir(dirname(dirname(dirname(__FILE__)))); // /var/www/froxlor, needed for chown $user = Settings::Get('phpfpm.vhost_httpuser'); $group = Settings::Get('phpfpm.vhost_httpgroup'); diff --git a/lib/Froxlor/Cron/Http/Nginx.php b/lib/Froxlor/Cron/Http/Nginx.php index a8de9895..3a784034 100644 --- a/lib/Froxlor/Cron/Http/Nginx.php +++ b/lib/Froxlor/Cron/Http/Nginx.php @@ -66,7 +66,7 @@ class Nginx extends HttpConfigBase foreach ($restart_cmds as $restart_cmd) { // check whether the config dir is empty (no domains uses this daemon) // so we need to create a dummy - $_conffiles = glob(makeCorrectFile($restart_cmd['config_dir'] . "/*.conf")); + $_conffiles = glob(\Froxlor\FileDir::makeCorrectFile($restart_cmd['config_dir'] . "/*.conf")); if ($_conffiles === false || empty($_conffiles)) { $this->logger->logAction(CRON_ACTION, LOG_INFO, 'nginx::reload: fpm config directory "' . $restart_cmd['config_dir'] . '" is empty. Creating dummy.'); Fpm::createDummyPool($restart_cmd['config_dir']); @@ -96,12 +96,12 @@ class Nginx extends HttpConfigBase if (Settings::Get('defaultwebsrverrhandler.enabled') == '1' && (Settings::Get('defaultwebsrverrhandler.err401') != '' || Settings::Get('defaultwebsrverrhandler.err403') != '' || Settings::Get('defaultwebsrverrhandler.err404') != '' || Settings::Get('defaultwebsrverrhandler.err500') != '')) { $vhosts_folder = ''; if (is_dir(Settings::Get('system.apacheconf_vhost'))) { - $vhosts_folder = makeCorrectDir(Settings::Get('system.apacheconf_vhost')); + $vhosts_folder = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')); } else { - $vhosts_folder = makeCorrectDir(dirname(Settings::Get('system.apacheconf_vhost'))); + $vhosts_folder = \Froxlor\FileDir::makeCorrectDir(dirname(Settings::Get('system.apacheconf_vhost'))); } - $vhosts_filename = makeCorrectFile($vhosts_folder . '/05_froxlor_default_errorhandler.conf'); + $vhosts_filename = \Froxlor\FileDir::makeCorrectFile($vhosts_folder . '/05_froxlor_default_errorhandler.conf'); if (! isset($this->nginx_data[$vhosts_filename])) { $this->nginx_data[$vhosts_filename] = ''; @@ -117,7 +117,7 @@ class Nginx extends HttpConfigBase if (Settings::Get('defaultwebsrverrhandler.err' . $statusCode) != '') { $defhandler = Settings::Get('defaultwebsrverrhandler.err' . $statusCode); if (! validateUrl($defhandler)) { - $defhandler = makeCorrectFile($defhandler); + $defhandler = \Froxlor\FileDir::makeCorrectFile($defhandler); } $this->nginx_data[$vhosts_filename] .= 'error_page ' . $statusCode . ' ' . $defhandler . ';' . "\n"; } @@ -146,7 +146,7 @@ class Nginx extends HttpConfigBase $port = $row_ipsandports['port']; $this->logger->logAction(CRON_ACTION, LOG_INFO, 'nginx::createIpPort: creating ip/port settings for ' . $ip . ":" . $port); - $vhost_filename = makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/10_froxlor_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf'); + $vhost_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/10_froxlor_ipandport_' . trim(str_replace(':', '.', $row_ipsandports['ip']), '.') . '.' . $row_ipsandports['port'] . '.conf'); if (! isset($this->nginx_data[$vhost_filename])) { $this->nginx_data[$vhost_filename] = ''; @@ -339,7 +339,7 @@ class Nginx extends HttpConfigBase foreach ($domains as $domain) { if (is_dir(Settings::Get('system.apacheconf_vhost'))) { - safe_exec('mkdir -p ' . escapeshellarg(makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); + safe_exec('mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); } $vhost_filename = $this->getVhostFilename($domain); @@ -377,9 +377,9 @@ class Nginx extends HttpConfigBase } if ($ssl_vhost === true) { - $vhost_filename = makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/' . $vhost_no . '_froxlor_ssl_vhost_' . $domain['domain'] . '.conf'); + $vhost_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/' . $vhost_no . '_froxlor_ssl_vhost_' . $domain['domain'] . '.conf'); } else { - $vhost_filename = makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/' . $vhost_no . '_froxlor_normal_vhost_' . $domain['domain'] . '.conf'); + $vhost_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_vhost') . '/' . $vhost_no . '_froxlor_normal_vhost_' . $domain['domain'] . '.conf'); } return $vhost_filename; @@ -645,7 +645,7 @@ class Nginx extends HttpConfigBase $sslsettings .= "\t" . 'ssl_protocols ' . str_replace(",", " ", Settings::Get('system.ssl_protocols')) . ';' . "\n"; $sslsettings .= "\t" . 'ssl_ciphers ' . Settings::Get('system.ssl_cipher_list') . ';' . "\n"; if (! empty(Settings::Get('system.dhparams_file'))) { - $dhparams = makeCorrectFile(Settings::Get('system.dhparams_file')); + $dhparams = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.dhparams_file')); if (! file_exists($dhparams)) { safe_exec('openssl dhparam -out ' . escapeshellarg($dhparams) . ' 4096'); } @@ -653,14 +653,14 @@ class Nginx extends HttpConfigBase } $sslsettings .= "\t" . 'ssl_ecdh_curve secp384r1;' . "\n"; $sslsettings .= "\t" . 'ssl_prefer_server_ciphers on;' . "\n"; - $sslsettings .= "\t" . 'ssl_certificate ' . makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n"; + $sslsettings .= "\t" . 'ssl_certificate ' . \Froxlor\FileDir::makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n"; if ($domain_or_ip['ssl_key_file'] != '') { // check for existence, #1485 if (! file_exists($domain_or_ip['ssl_key_file'])) { $this->logger->logAction(CRON_ACTION, LOG_ERR, $domain_or_ip['domain'] . ' :: certificate key file "' . $domain_or_ip['ssl_key_file'] . '" does not exist! Cannot create ssl-directives'); } else { - $sslsettings .= "\t" . 'ssl_certificate_key ' . makeCorrectFile($domain_or_ip['ssl_key_file']) . ';' . "\n"; + $sslsettings .= "\t" . 'ssl_certificate_key ' . \Froxlor\FileDir::makeCorrectFile($domain_or_ip['ssl_key_file']) . ';' . "\n"; } } @@ -678,7 +678,7 @@ class Nginx extends HttpConfigBase if ((isset($domain_or_ip['ocsp_stapling']) && $domain_or_ip['ocsp_stapling'] == "1") || (isset($domain_or_ip['letsencrypt']) && $domain_or_ip['letsencrypt'] == "1")) { $sslsettings .= "\t" . 'ssl_stapling on;' . "\n"; $sslsettings .= "\t" . 'ssl_stapling_verify on;' . "\n"; - $sslsettings .= "\t" . 'ssl_trusted_certificate ' . makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n"; + $sslsettings .= "\t" . 'ssl_trusted_certificate ' . \Froxlor\FileDir::makeCorrectFile($domain_or_ip['ssl_cert_file']) . ';' . "\n"; } } } @@ -704,7 +704,7 @@ class Nginx extends HttpConfigBase if (! empty($row['error404path'])) { $defhandler = $row['error404path']; if (! validateUrl($defhandler)) { - $defhandler = makeCorrectFile($defhandler); + $defhandler = \Froxlor\FileDir::makeCorrectFile($defhandler); } $path_options .= "\t" . 'error_page 404 ' . $defhandler . ';' . "\n"; } @@ -712,7 +712,7 @@ class Nginx extends HttpConfigBase if (! empty($row['error403path'])) { $defhandler = $row['error403path']; if (! validateUrl($defhandler)) { - $defhandler = makeCorrectFile($defhandler); + $defhandler = \Froxlor\FileDir::makeCorrectFile($defhandler); } $path_options .= "\t" . 'error_page 403 ' . $defhandler . ';' . "\n"; } @@ -720,13 +720,13 @@ class Nginx extends HttpConfigBase if (! empty($row['error500path'])) { $defhandler = $row['error500path']; if (! validateUrl($defhandler)) { - $defhandler = makeCorrectFile($defhandler); + $defhandler = \Froxlor\FileDir::makeCorrectFile($defhandler); } $path_options .= "\t" . 'error_page 500 502 503 504 ' . $defhandler . ';' . "\n"; } // if ($row['options_indexes'] != '0') { - $path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); + $path = \Froxlor\FileDir::makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']); @@ -754,7 +754,7 @@ class Nginx extends HttpConfigBase default: if ($single['path'] == '/') { $path_options .= "\t\t" . 'auth_basic "' . $single['authname'] . '";' . "\n"; - $path_options .= "\t\t" . 'auth_basic_user_file ' . makeCorrectFile($single['usrf']) . ';' . "\n"; + $path_options .= "\t\t" . 'auth_basic_user_file ' . \Froxlor\FileDir::makeCorrectFile($single['usrf']) . ';' . "\n"; if ($domain['phpenabled_customer'] == 1 && $domain['phpenabled_vhost'] == '1') { $path_options .= "\t\t" . 'index index.php index.html index.htm;' . "\n"; } else { @@ -787,7 +787,7 @@ class Nginx extends HttpConfigBase * required the fastCGI wrapper to be running to receive the CGI requests. */ if (customerHasPerlEnabled($domain['customerid']) && $row['options_cgi'] != '0') { - $path = makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); + $path = \Froxlor\FileDir::makeCorrectDir(substr($row['path'], strlen($domain['documentroot']) - 1)); mkDirWithCorrectOwnership($domain['documentroot'], $row['path'], $domain['guid'], $domain['guid']); // We need to remove the last slash, otherwise the regex wouldn't work @@ -814,9 +814,9 @@ class Nginx extends HttpConfigBase unset($htpasswds[$idx]); break; default: - $path_options .= "\t" . 'location ' . makeCorrectDir($single['path']) . ' {' . "\n"; + $path_options .= "\t" . 'location ' . \Froxlor\FileDir::makeCorrectDir($single['path']) . ' {' . "\n"; $path_options .= "\t\t" . 'auth_basic "' . $single['authname'] . '";' . "\n"; - $path_options .= "\t\t" . 'auth_basic_user_file ' . makeCorrectFile($single['usrf']) . ';' . "\n"; + $path_options .= "\t\t" . 'auth_basic_user_file ' . \Froxlor\FileDir::makeCorrectFile($single['usrf']) . ';' . "\n"; if ($domain['phpenabled_customer'] == 1 && $domain['phpenabled_vhost'] == '1') { $path_options .= "\t\t" . 'index index.php index.html index.htm;' . "\n"; } else { @@ -852,7 +852,7 @@ class Nginx extends HttpConfigBase $x = 0; while ($row_htpasswds = $result_stmt->fetch(\PDO::FETCH_ASSOC)) { if (count($row_htpasswds) > 0) { - $htpasswd_filename = makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $row_htpasswds['customerid'] . '-' . md5($row_htpasswds['path']) . '.htpasswd'); + $htpasswd_filename = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.apacheconf_htpasswddir') . '/' . $row_htpasswds['customerid'] . '-' . md5($row_htpasswds['path']) . '.htpasswd'); // ensure we can write to the array with index $htpasswd_filename if (! isset($this->htpasswds_data[$htpasswd_filename])) { @@ -865,15 +865,15 @@ class Nginx extends HttpConfigBase // the nginx user, we have to evaluate the right path which is to protect if (stripos($row_htpasswds['path'], $domain['documentroot']) !== false) { // if the website contents is located in the user directory - $path = makeCorrectDir(substr($row_htpasswds['path'], strlen($domain['documentroot']) - 1)); + $path = \Froxlor\FileDir::makeCorrectDir(substr($row_htpasswds['path'], strlen($domain['documentroot']) - 1)); } else { // if the website contents is located in a subdirectory of the user preg_match('/^([\/[:print:]]*\/)([[:print:]\/]+){1}$/i', $row_htpasswds['path'], $matches); - $path = makeCorrectDir(substr($row_htpasswds['path'], strlen($matches[1]) - 1)); + $path = \Froxlor\FileDir::makeCorrectDir(substr($row_htpasswds['path'], strlen($matches[1]) - 1)); } $returnval[$x]['path'] = $path; - $returnval[$x]['root'] = makeCorrectDir($domain['documentroot']); + $returnval[$x]['root'] = \Froxlor\FileDir::makeCorrectDir($domain['documentroot']); // Ensure there is only one auth name per password block, otherwise // the directives are inserted multiple times -> invalid config @@ -927,10 +927,10 @@ class Nginx extends HttpConfigBase if ($domain['deactivated'] == '1' && Settings::Get('system.deactivateddocroot') != '') { $webroot_text .= "\t" . '# Using docroot for deactivated users...' . "\n"; - $webroot_text .= "\t" . 'root ' . makeCorrectDir(Settings::Get('system.deactivateddocroot')) . ';' . "\n"; + $webroot_text .= "\t" . 'root ' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.deactivateddocroot')) . ';' . "\n"; $this->_deactivated = true; } else { - $webroot_text .= "\t" . 'root ' . makeCorrectDir($domain['documentroot']) . ';' . "\n"; + $webroot_text .= "\t" . 'root ' . \Froxlor\FileDir::makeCorrectDir($domain['documentroot']) . ';' . "\n"; $this->_deactivated = false; } @@ -966,16 +966,16 @@ class Nginx extends HttpConfigBase // define basic path to the stats if (Settings::Get('system.awstats_enabled') == '1') { - $alias_dir = makeCorrectFile($domain['customerroot'] . '/awstats/'); + $alias_dir = \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/awstats/'); } else { - $alias_dir = makeCorrectFile($domain['customerroot'] . '/webalizer/'); + $alias_dir = \Froxlor\FileDir::makeCorrectFile($domain['customerroot'] . '/webalizer/'); } // if this is a parentdomain, we use this domain-name if ($domain['parentdomainid'] == '0') { - $alias_dir = makeCorrectDir($alias_dir . '/' . $domain['domain']); + $alias_dir = \Froxlor\FileDir::makeCorrectDir($alias_dir . '/' . $domain['domain']); } else { - $alias_dir = makeCorrectDir($alias_dir . '/' . $domain['parentdomain']); + $alias_dir = \Froxlor\FileDir::makeCorrectDir($alias_dir . '/' . $domain['parentdomain']); } if (Settings::Get('system.awstats_enabled') == '1') { @@ -988,13 +988,13 @@ class Nginx extends HttpConfigBase $stats_text .= "\t\t" . 'alias ' . $alias_dir . ';' . "\n"; $stats_text .= "\t\t" . 'auth_basic "' . $single['authname'] . '";' . "\n"; - $stats_text .= "\t\t" . 'auth_basic_user_file ' . makeCorrectFile($single['usrf']) . ';' . "\n"; + $stats_text .= "\t\t" . 'auth_basic_user_file ' . \Froxlor\FileDir::makeCorrectFile($single['usrf']) . ';' . "\n"; $stats_text .= "\t" . '}' . "\n\n"; // awstats icons if (Settings::Get('system.awstats_enabled') == '1') { $stats_text .= "\t" . 'location ~ ^/awstats-icon/(.*)$ {' . "\n"; - $stats_text .= "\t\t" . 'alias ' . makeCorrectDir(Settings::Get('system.awstats_icons')) . '$1;' . "\n"; + $stats_text .= "\t\t" . 'alias ' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.awstats_icons')) . '$1;' . "\n"; $stats_text .= "\t" . '}' . "\n\n"; } @@ -1016,7 +1016,7 @@ class Nginx extends HttpConfigBase if ($domain['writeerrorlog']) { // The normal access/error - logging is enabled - $error_log = makeCorrectFile(Settings::Get('system.logfiles_directory') . $domain['loginname'] . $speciallogfile . '-error.log'); + $error_log = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . $domain['loginname'] . $speciallogfile . '-error.log'); // Create the logfile if it does not exist (fixes #46) touch($error_log); chown($error_log, Settings::Get('system.httpuser')); @@ -1026,7 +1026,7 @@ class Nginx extends HttpConfigBase } if ($domain['writeaccesslog']) { - $access_log = makeCorrectFile(Settings::Get('system.logfiles_directory') . $domain['loginname'] . $speciallogfile . '-access.log'); + $access_log = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . $domain['loginname'] . $speciallogfile . '-access.log'); // Create the logfile if it does not exist (fixes #46) touch($access_log); chown($access_log, Settings::Get('system.httpuser')); @@ -1158,8 +1158,8 @@ class Nginx extends HttpConfigBase fclose($vhosts_file_handler); } else { if (! file_exists(Settings::Get('system.apacheconf_vhost'))) { - $this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'nginx::writeConfigs: mkdir ' . escapeshellarg(makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); - safe_exec('mkdir -p ' . escapeshellarg(makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); + $this->logger->logAction(CRON_ACTION, LOG_NOTICE, 'nginx::writeConfigs: mkdir ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); + safe_exec('mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir(Settings::Get('system.apacheconf_vhost')))); } // Write a single file for every vhost diff --git a/lib/Froxlor/Cron/Http/NginxFcgi.php b/lib/Froxlor/Cron/Http/NginxFcgi.php index 0301269c..61838938 100644 --- a/lib/Froxlor/Cron/Http/NginxFcgi.php +++ b/lib/Froxlor/Cron/Http/NginxFcgi.php @@ -63,7 +63,7 @@ class NginxFcgi extends Nginx public function createOwnVhostStarter() { if (Settings::Get('phpfpm.enabled') == '1' && Settings::Get('phpfpm.enabled_ownvhost') == '1') { - $mypath = makeCorrectDir(dirname(dirname(dirname(__FILE__)))); // /var/www/froxlor, needed for chown + $mypath = \Froxlor\FileDir::makeCorrectDir(dirname(dirname(dirname(__FILE__)))); // /var/www/froxlor, needed for chown $user = Settings::Get('phpfpm.vhost_httpuser'); $group = Settings::Get('phpfpm.vhost_httpgroup'); diff --git a/lib/Froxlor/Cron/Http/Php/Fcgid.php b/lib/Froxlor/Cron/Http/Php/Fcgid.php index d5bb5042..2075f8e7 100644 --- a/lib/Froxlor/Cron/Http/Php/Fcgid.php +++ b/lib/Froxlor/Cron/Http/Php/Fcgid.php @@ -158,8 +158,8 @@ class Fcgid 'OPEN_BASEDIR' => $openbasedir, 'OPEN_BASEDIR_C' => $openbasedirc, 'OPEN_BASEDIR_GLOBAL' => Settings::Get('system.phpappendopenbasedir'), - 'DOCUMENT_ROOT' => makeCorrectDir($this->_domain['documentroot']), - 'CUSTOMER_HOMEDIR' => makeCorrectDir($this->_domain['customerroot']) + 'DOCUMENT_ROOT' => \Froxlor\FileDir::makeCorrectDir($this->_domain['documentroot']), + 'CUSTOMER_HOMEDIR' => \Froxlor\FileDir::makeCorrectDir($this->_domain['customerroot']) ); // insert a small header for the file @@ -187,7 +187,7 @@ class Fcgid */ public function getConfigDir($createifnotexists = true) { - $configdir = makeCorrectDir(Settings::Get('system.mod_fcgid_configdir') . '/' . $this->_domain['loginname'] . '/' . $this->_domain['domain'] . '/'); + $configdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.mod_fcgid_configdir') . '/' . $this->_domain['loginname'] . '/' . $this->_domain['domain'] . '/'); if (! is_dir($configdir) && $createifnotexists) { safe_exec('mkdir -p ' . escapeshellarg($configdir)); @@ -207,7 +207,7 @@ class Fcgid */ public function getTempDir($createifnotexists = true) { - $tmpdir = makeCorrectDir(Settings::Get('system.mod_fcgid_tmpdir') . '/' . $this->_domain['loginname'] . '/'); + $tmpdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.mod_fcgid_tmpdir') . '/' . $this->_domain['loginname'] . '/'); if (! is_dir($tmpdir) && $createifnotexists) { safe_exec('mkdir -p ' . escapeshellarg($tmpdir)); @@ -225,7 +225,7 @@ class Fcgid */ public function getStarterFile() { - $starter_filename = makeCorrectFile($this->getConfigDir() . '/php-fcgi-starter'); + $starter_filename = \Froxlor\FileDir::makeCorrectFile($this->getConfigDir() . '/php-fcgi-starter'); return $starter_filename; } @@ -236,7 +236,7 @@ class Fcgid */ public function getIniFile() { - $phpini_filename = makeCorrectFile($this->getConfigDir() . '/php.ini'); + $phpini_filename = \Froxlor\FileDir::makeCorrectFile($this->getConfigDir() . '/php.ini'); return $phpini_filename; } diff --git a/lib/Froxlor/Cron/Http/Php/Fpm.php b/lib/Froxlor/Cron/Http/Php/Fpm.php index a944bc1f..7d695688 100644 --- a/lib/Froxlor/Cron/Http/Php/Fpm.php +++ b/lib/Froxlor/Cron/Http/Php/Fpm.php @@ -172,15 +172,15 @@ class Fpm if ($phpconfig['fpm_slowlog'] == '1') { $fpm_config .= 'request_terminate_timeout = ' . $phpconfig['fpm_reqterm'] . "\n"; $fpm_config .= 'request_slowlog_timeout = ' . $phpconfig['fpm_reqslow'] . "\n"; - $slowlog = makeCorrectFile(Settings::Get('system.logfiles_directory') . '/' . $this->_domain['loginname'] . '-php-slow.log'); + $slowlog = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . '/' . $this->_domain['loginname'] . '-php-slow.log'); $fpm_config .= 'slowlog = ' . $slowlog . "\n"; $fpm_config .= 'catch_workers_output = yes' . "\n"; } - $fpm_config .= ';chroot = ' . makeCorrectDir($this->_domain['documentroot']) . "\n"; + $fpm_config .= ';chroot = ' . \Froxlor\FileDir::makeCorrectDir($this->_domain['documentroot']) . "\n"; $fpm_config .= 'security.limit_extensions = ' . $fpm_limit_extensions . "\n"; - $tmpdir = makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/'); + $tmpdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/'); if (! is_dir($tmpdir)) { $this->getTempDir(); } @@ -217,8 +217,8 @@ class Fpm $openbasedir .= $_phpappendopenbasedir; } } - $fpm_config .= 'php_admin_value[session.save_path] = ' . makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/') . "\n"; - $fpm_config .= 'php_admin_value[upload_tmp_dir] = ' . makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/') . "\n"; + $fpm_config .= 'php_admin_value[session.save_path] = ' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/') . "\n"; + $fpm_config .= 'php_admin_value[upload_tmp_dir] = ' . \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/') . "\n"; $admin = $this->_getAdminData($this->_domain['adminid']); $php_ini_variables = array( @@ -233,8 +233,8 @@ class Fpm 'OPEN_BASEDIR' => $openbasedir, 'OPEN_BASEDIR_C' => '', 'OPEN_BASEDIR_GLOBAL' => Settings::Get('system.phpappendopenbasedir'), - 'DOCUMENT_ROOT' => makeCorrectDir($this->_domain['documentroot']), - 'CUSTOMER_HOMEDIR' => makeCorrectDir($this->_domain['customerroot']) + 'DOCUMENT_ROOT' => \Froxlor\FileDir::makeCorrectDir($this->_domain['documentroot']), + 'CUSTOMER_HOMEDIR' => \Froxlor\FileDir::makeCorrectDir($this->_domain['customerroot']) ); $phpini = replace_variables($phpconfig['phpsettings'], $php_ini_variables); @@ -287,7 +287,7 @@ class Fpm public function getConfigFile($createifnotexists = true) { $configdir = $this->_fpm_cfg['config_dir']; - $config = makeCorrectFile($configdir . '/' . $this->_domain['domain'] . '.conf'); + $config = \Froxlor\FileDir::makeCorrectFile($configdir . '/' . $this->_domain['domain'] . '.conf'); if (! is_dir($configdir) && $createifnotexists) { safe_exec('mkdir -p ' . escapeshellarg($configdir)); @@ -306,9 +306,9 @@ class Fpm */ public function getSocketFile($createifnotexists = true) { - $socketdir = makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')); + $socketdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.fastcgi_ipcdir')); // add fpm-config-id to filename so it's unique for the fpm-daemon and doesn't interfere with running configs when reuilding - $socket = strtolower(makeCorrectFile($socketdir . '/' . $this->_domain['fpm_config_id'] . '-' . $this->_domain['loginname'] . '-' . $this->_domain['domain'] . '-php-fpm.socket')); + $socket = strtolower(\Froxlor\FileDir::makeCorrectFile($socketdir . '/' . $this->_domain['fpm_config_id'] . '-' . $this->_domain['loginname'] . '-' . $this->_domain['domain'] . '-php-fpm.socket')); if (! is_dir($socketdir) && $createifnotexists) { safe_exec('mkdir -p ' . escapeshellarg($socketdir)); @@ -328,7 +328,7 @@ class Fpm */ public function getTempDir($createifnotexists = true) { - $tmpdir = makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/'); + $tmpdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.tmpdir') . '/' . $this->_domain['loginname'] . '/'); if (! is_dir($tmpdir) && $createifnotexists) { safe_exec('mkdir -p ' . escapeshellarg($tmpdir)); @@ -355,7 +355,7 @@ class Fpm Settings::Set('phpfpm.aliasconfigdir', '/var/www/php-fpm'); } - $configdir = makeCorrectDir(Settings::Get('phpfpm.aliasconfigdir') . '/' . $this->_domain['loginname'] . '/' . $this->_domain['domain'] . '/'); + $configdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('phpfpm.aliasconfigdir') . '/' . $this->_domain['loginname'] . '/' . $this->_domain['domain'] . '/'); if (! is_dir($configdir) && $createifnotexists) { safe_exec('mkdir -p ' . escapeshellarg($configdir)); safe_exec('chown ' . $this->_domain['guid'] . ':' . $this->_domain['guid'] . ' ' . escapeshellarg($configdir)); @@ -375,7 +375,7 @@ class Fpm if (! is_dir($configdir)) { safe_exec('mkdir -p ' . escapeshellarg($configdir)); } - $config = makeCorrectFile($configdir . '/dummy.conf'); + $config = \Froxlor\FileDir::makeCorrectFile($configdir . '/dummy.conf'); $dummy = "[dummy] user = " . Settings::Get('system.httpuser') . " listen = /run/" . md5($configdir) . "-fpm.sock diff --git a/lib/Froxlor/Cron/System/BackupCron.php b/lib/Froxlor/Cron/System/BackupCron.php index 347a1ac8..3a4f8b43 100644 --- a/lib/Froxlor/Cron/System/BackupCron.php +++ b/lib/Froxlor/Cron/System/BackupCron.php @@ -29,7 +29,7 @@ class BackupCron extends \Froxlor\Cron\FroxlorCron { // Check Traffic-Lock if (function_exists('pcntl_fork')) { - $BackupLock = makeCorrectFile(dirname(self::getLockfile()) . "/froxlor_cron_backup.lock"); + $BackupLock = \Froxlor\FileDir::makeCorrectFile(dirname(self::getLockfile()) . "/froxlor_cron_backup.lock"); if (file_exists($BackupLock) && is_numeric($BackupPid = file_get_contents($BackupLock))) { if (function_exists('posix_kill')) { $BackupPidStatus = @posix_kill($BackupPid, 0); @@ -87,8 +87,8 @@ class BackupCron extends \Froxlor\Cron\FroxlorCron if (is_array($row['data'])) { if (isset($row['data']['customerid']) && isset($row['data']['loginname']) && isset($row['data']['destdir'])) { - $row['data']['destdir'] = makeCorrectDir($row['data']['destdir']); - $customerdocroot = makeCorrectDir(Settings::Get('system.documentroot_prefix') . '/' . $row['data']['loginname'] . '/'); + $row['data']['destdir'] = \Froxlor\FileDir::makeCorrectDir($row['data']['destdir']); + $customerdocroot = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.documentroot_prefix') . '/' . $row['data']['loginname'] . '/'); // create folder if not exists if (! file_exists($row['data']['destdir']) && $row['data']['destdir'] != '/' && $row['data']['destdir'] != Settings::Get('system.documentroot_prefix') && $row['data']['destdir'] != $customerdocroot) { @@ -125,7 +125,7 @@ class BackupCron extends \Froxlor\Cron\FroxlorCron $cronlog->logAction(CRON_ACTION, LOG_INFO, 'Creating Backup for user "' . $data['loginname'] . '"'); // create tmp folder - $tmpdir = makeCorrectDir($data['destdir'] . '/.tmp/'); + $tmpdir = \Froxlor\FileDir::makeCorrectDir($data['destdir'] . '/.tmp/'); $cronlog->logAction(CRON_ACTION, LOG_DEBUG, 'Creating tmp-folder "' . $tmpdir . '"'); $cronlog->logAction(CRON_ACTION, LOG_DEBUG, 'shell> mkdir -p ' . escapeshellarg($tmpdir)); \Froxlor\FileDir::safe_exec('mkdir -p ' . escapeshellarg($tmpdir)); @@ -135,8 +135,8 @@ class BackupCron extends \Froxlor\Cron\FroxlorCron if ($data['backup_dbs'] == 1) { $cronlog->logAction(CRON_ACTION, LOG_DEBUG, 'Creating mysql-folder "' . \Froxlor\FileDir::makeCorrectDir($tmpdir . '/mysql') . '"'); - $cronlog->logAction(CRON_ACTION, LOG_DEBUG, 'shell> mkdir -p ' . escapeshellarg(makeCorrectDir($tmpdir . '/mysql'))); - \Froxlor\FileDir::safe_exec('mkdir -p ' . escapeshellarg(makeCorrectDir($tmpdir . '/mysql'))); + $cronlog->logAction(CRON_ACTION, LOG_DEBUG, 'shell> mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir($tmpdir . '/mysql'))); + \Froxlor\FileDir::safe_exec('mkdir -p ' . escapeshellarg(\Froxlor\FileDir::makeCorrectDir($tmpdir . '/mysql'))); // get all customer database-names $sel_stmt = Database::prepare("SELECT `databasename` FROM `" . TABLE_PANEL_DATABASES . "` WHERE `customerid` = :cid"); diff --git a/lib/Froxlor/Cron/System/MailboxsizeCron.php b/lib/Froxlor/Cron/System/MailboxsizeCron.php index 44134fd3..c3b0af53 100644 --- a/lib/Froxlor/Cron/System/MailboxsizeCron.php +++ b/lib/Froxlor/Cron/System/MailboxsizeCron.php @@ -35,7 +35,7 @@ class MailboxsizeCron extends \Froxlor\Cron\FroxlorCron while ($maildir = $maildirs_stmt->fetch(\PDO::FETCH_ASSOC)) { - $_maildir = makeCorrectDir($maildir['maildirpath']); + $_maildir = \Froxlor\FileDir::makeCorrectDir($maildir['maildirpath']); if (file_exists($_maildir) && is_dir($_maildir)) { // mail-address allows many special characters, see http://en.wikipedia.org/wiki/Email_address#Local_part diff --git a/lib/Froxlor/Cron/Traffic/ReportsCron.php b/lib/Froxlor/Cron/Traffic/ReportsCron.php index 9f8e90ad..8ef948f1 100644 --- a/lib/Froxlor/Cron/Traffic/ReportsCron.php +++ b/lib/Froxlor/Cron/Traffic/ReportsCron.php @@ -112,9 +112,9 @@ class ReportsCron extends \Froxlor\Cron\FroxlorCron } // include english language file (fallback) - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); // include admin/customer language file - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); // Get mail templates from database; the ones from 'admin' are fetched for fallback $result2_stmt = Database::prepare(" @@ -214,9 +214,9 @@ class ReportsCron extends \Froxlor\Cron\FroxlorCron } // include english language file (fallback) - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); // include admin/customer language file - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); // Get mail templates from database; the ones from 'admin' are fetched for fallback $result2_stmt = Database::prepare(" diff --git a/lib/Froxlor/Cron/Traffic/TrafficCron.php b/lib/Froxlor/Cron/Traffic/TrafficCron.php index b20b307f..d0faef40 100644 --- a/lib/Froxlor/Cron/Traffic/TrafficCron.php +++ b/lib/Froxlor/Cron/Traffic/TrafficCron.php @@ -28,7 +28,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron // Check Traffic-Lock if (function_exists('pcntl_fork') && ! defined('CRON_NOFORK_FLAG')) { - $TrafficLock = makeCorrectFile(dirname($lockfile) . "/froxlor_cron_traffic.lock"); + $TrafficLock = \Froxlor\FileDir::makeCorrectFile(dirname($lockfile) . "/froxlor_cron_traffic.lock"); if (file_exists($TrafficLock) && is_numeric($TrafficPid = file_get_contents($TrafficLock))) { if (function_exists('posix_kill')) { $TrafficPidStatus = @posix_kill($TrafficPid, 0); @@ -69,7 +69,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $cronlog->logAction(CRON_ACTION, LOG_INFO, $msg . " Not forking traffic-cron, this may take a long time!"); } - require_once makeCorrectFile(dirname(__FILE__) . '/TrafficCron.inc.functions.php'); + require_once \Froxlor\FileDir::makeCorrectFile(dirname(__FILE__) . '/TrafficCron.inc.functions.php'); /** * TRAFFIC AND DISKUSAGE MESSURE @@ -83,7 +83,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `aliasdomain` IS NULL AND `email_only` <> '1'; "); - while ($row_domainlist = $result_domainlist_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($row_domainlist = $result_domainlist_stmt->fetch(\PDO::FETCH_ASSOC)) { if (! isset($domainlist[$row_domainlist['customerid']])) { $domainlist[$row_domainlist['customerid']] = array(); @@ -106,11 +106,11 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $databases_list = array(); Database::needRoot(true); $databases_list_result_stmt = Database::query("SHOW DATABASES"); - while ($databases_list_row = $databases_list_result_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($databases_list_row = $databases_list_result_stmt->fetch(\PDO::FETCH_ASSOC)) { $databases_list[] = strtolower($databases_list_row['Database']); } - while ($row_database = $databases_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($row_database = $databases_stmt->fetch(\PDO::FETCH_ASSOC)) { if ($last_dbserver != $row_database['dbserver']) { Database::needRoot(true, $row_database['dbserver']); @@ -118,7 +118,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $databases_list = array(); $databases_list_result_stmt = Database::query("SHOW DATABASES"); - while ($databases_list_row = $databases_list_result_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($databases_list_row = $databases_list_result_stmt->fetch(\PDO::FETCH_ASSOC)) { $databases_list[] = strtolower($databases_list_row['Database']); } } @@ -162,7 +162,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $result_stmt = Database::query("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` ORDER BY `customerid` ASC"); - while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($row = $result_stmt->fetch(\PDO::FETCH_ASSOC)) { /** * HTTP-Traffic */ @@ -255,7 +255,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron Database::pexecute($domains_stmt, array( "cid" => $row['customerid'] )); - while ($domainRow = $domains_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($domainRow = $domains_stmt->fetch(\PDO::FETCH_ASSOC)) { $domainMailTraffic = $mailTrafficCalc->getDomainTraffic($domainRow["domain"]); if (! is_array($domainMailTraffic)) { continue; @@ -282,7 +282,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron ); Database::pexecute($stmt, $params); if ($stmt->rowCount() > 0) { - $updRow = $stmt->fetch(PDO::FETCH_ASSOC); + $updRow = $stmt->fetch(\PDO::FETCH_ASSOC); $upd_stmt = Database::prepare("UPDATE `" . TABLE_PANEL_TRAFFIC . "` SET `mail` = :mail WHERE `id` = :id"); @@ -391,7 +391,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $cronlog->logAction(CRON_ACTION, LOG_INFO, 'calculating mailspace usage for ' . $row['loginname']); $emailusage = 0; - $maildir = makeCorrectDir(Settings::Get('system.vmail_homedir') . $row['loginname']); + $maildir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.vmail_homedir') . $row['loginname']); if (file_exists($maildir) && is_dir($maildir)) { $back = safe_exec('du -sk ' . escapeshellarg($maildir) . ''); foreach ($back as $backrow) { @@ -509,7 +509,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $group = $row['guid']; } - while ($row_quota = $result_quota_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($row_quota = $result_quota_stmt->fetch(\PDO::FETCH_ASSOC)) { $quotafile = "" . $row_quota['homedir'] . ".ftpquota"; $fh = fopen($quotafile, 'w'); $stringdata = "0 " . $current_diskspace['all'] * 1024 . ""; @@ -525,7 +525,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron */ $result_stmt = Database::query("SELECT `adminid` FROM `" . TABLE_PANEL_ADMINS . "` ORDER BY `adminid` ASC"); - while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { + while ($row = $result_stmt->fetch(\PDO::FETCH_ASSOC)) { if (isset($admin_traffic[$row['adminid']])) { @@ -615,20 +615,20 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron { $returnval = 0; - $domainconfig = makeCorrectFile(Settings::Get('system.awstats_conf') . '/awstats.' . $domain . '.conf'); + $domainconfig = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.awstats_conf') . '/awstats.' . $domain . '.conf'); if (file_exists($domainconfig)) { - $outputdir = makeCorrectDir($outputdir . '/' . $domain); - $staticOutputdir = makeCorrectDir($outputdir . '/' . date('Y') . '-' . date('m')); + $outputdir = \Froxlor\FileDir::makeCorrectDir($outputdir . '/' . $domain); + $staticOutputdir = \Froxlor\FileDir::makeCorrectDir($outputdir . '/' . date('Y') . '-' . date('m')); if (! is_dir($staticOutputdir)) { safe_exec('mkdir -p ' . escapeshellarg($staticOutputdir)); } // check for correct path of awstats_buildstaticpages.pl - $awbsp = makeCorrectFile(Settings::Get('system.awstats_path') . '/awstats_buildstaticpages.pl'); - $awprog = makeCorrectFile(Settings::Get('system.awstats_awstatspath') . '/awstats.pl'); + $awbsp = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.awstats_path') . '/awstats_buildstaticpages.pl'); + $awprog = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.awstats_awstatspath') . '/awstats.pl'); if (! file_exists($awbsp)) { echo "WANRING: Necessary awstats_buildstaticpages.pl script could not be found, no traffic is being calculated and no stats are generated. Please check your AWStats-Path setting"; @@ -644,11 +644,11 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron // the default selection is 'current', // so link the latest dir to it - $new_current = makeCorrectFile($outputdir . '/current'); + $new_current = \Froxlor\FileDir::makeCorrectFile($outputdir . '/current'); safe_exec('ln -fTs ' . escapeshellarg($staticOutputdir) . ' ' . escapeshellarg($new_current)); // statistics file looks like: 'awstats[month][year].[domain].txt' - $file = makeCorrectFile($outputdir . '/awstats' . date('mY', time()) . '.' . $domain . '.txt'); + $file = \Froxlor\FileDir::makeCorrectFile($outputdir . '/awstats' . date('mY', time()) . '.' . $domain . '.txt'); $cronlog->logAction(CRON_ACTION, LOG_INFO, "Gathering traffic information from '" . $file . "'"); if (file_exists($file)) { @@ -694,7 +694,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron // Looking for {year}-{month} directories $entries = array(); foreach (scandir($outputdir) as $a) { - if (is_dir(makeCorrectDir($outputdir . '/' . $a)) && preg_match('/^[0-9]{4}-[0-9]{2}$/', $a)) { + if (is_dir(\Froxlor\FileDir::makeCorrectDir($outputdir . '/' . $a)) && preg_match('/^[0-9]{4}-[0-9]{2}$/', $a)) { array_push($entries, ''); } } @@ -712,16 +712,16 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron // File names $index_file = \Froxlor\Froxlor::getInstallDir() . '/templates/misc/awstats/index.html'; - $index_file = makeCorrectFile($index_file); + $index_file = \Froxlor\FileDir::makeCorrectFile($index_file); $nav_file = \Froxlor\Froxlor::getInstallDir() . '/templates/misc/awstats/nav.html'; - $nav_file = makeCorrectFile($nav_file); + $nav_file = \Froxlor\FileDir::makeCorrectFile($nav_file); // Write the index file { // 'index.html' used to be a symlink (ignore errors in case this is the first run and no index.html exists yet) - @unlink(makeCorrectFile($outputdir . '/' . 'index.html')); + @unlink(\Froxlor\FileDir::makeCorrectFile($outputdir . '/' . 'index.html')); - $awstats_index_file = fopen(makeCorrectFile($outputdir . '/' . 'index.html'), 'w'); + $awstats_index_file = fopen(\Froxlor\FileDir::makeCorrectFile($outputdir . '/' . 'index.html'), 'w'); $awstats_index_tpl = fopen($index_file, 'r'); // Write the header @@ -739,7 +739,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron // Write the nav file { - $awstats_nav_file = fopen(makeCorrectFile($outputdir . '/' . 'nav.html'), 'w'); + $awstats_nav_file = fopen(\Froxlor\FileDir::makeCorrectFile($outputdir . '/' . 'nav.html'), 'w'); $awstats_nav_tpl = fopen($nav_file, 'r'); // Write the header @@ -823,7 +823,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $returnval = 0; - $logfile = makeCorrectFile(Settings::Get('system.logfiles_directory') . $logfile . '-access.log'); + $logfile = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . $logfile . '-access.log'); if (file_exists($logfile)) { $domainargs = ''; foreach ($usersdomainlist as $domainid => $domain) { @@ -831,7 +831,7 @@ class TrafficCron extends \Froxlor\Cron\FroxlorCron $domainargs .= ' -r ' . escapeshellarg($domain); } - $outputdir = makeCorrectDir($outputdir); + $outputdir = \Froxlor\FileDir::makeCorrectDir($outputdir); if (! file_exists($outputdir)) { safe_exec('mkdir -p ' . escapeshellarg($outputdir)); } diff --git a/lib/Froxlor/Cron/Traffic/cron_usage.inc.diskspace.php b/lib/Froxlor/Cron/Traffic/cron_usage.inc.diskspace.php index 51293b7e..7d14c146 100644 --- a/lib/Froxlor/Cron/Traffic/cron_usage.inc.diskspace.php +++ b/lib/Froxlor/Cron/Traffic/cron_usage.inc.diskspace.php @@ -68,9 +68,9 @@ if ((int)Settings::Get('system.report_webmax') > 0) } // include english language file (fallback) - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); // include admin/customer language file - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); // Get mail templates from database; the ones from 'admin' are fetched for fallback $result2_stmt = Database::prepare(" @@ -158,9 +158,9 @@ if ((int)Settings::Get('system.report_webmax') > 0) } // include english language file (fallback) - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/lng/english.lng.php'); // include admin/customer language file - include_once makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); + include_once \Froxlor\FileDir::makeCorrectFile(\Froxlor\Froxlor::getInstallDir() . '/' . $langfile); // Get mail templates from database; the ones from 'admin' are fetched for fallback $result2_stmt = Database::prepare(" diff --git a/lib/Froxlor/Dns/PowerDNS.php b/lib/Froxlor/Dns/PowerDNS.php index 9ec97c16..ece8b214 100644 --- a/lib/Froxlor/Dns/PowerDNS.php +++ b/lib/Froxlor/Dns/PowerDNS.php @@ -26,7 +26,7 @@ class PowerDNS { // get froxlor pdns config $cf = Settings::Get('system.bindconf_directory') . '/froxlor/pdns_froxlor.conf'; - $config = makeCorrectFile($cf); + $config = \Froxlor\FileDir::makeCorrectFile($cf); if (! file_exists($config)) { die('PowerDNS configuration file (' . $config . ') not found. Did you go through the configuration templates?' . PHP_EOL); @@ -58,7 +58,7 @@ class PowerDNS ); if (isset($mysql_data['gmysql-socket']) && ! empty($mysql_data['gmysql-socket'])) { - $dbconf["dsn"]['unix_socket'] = makeCorrectFile($mysql_data['gmysql-socket']); + $dbconf["dsn"]['unix_socket'] = \Froxlor\FileDir::makeCorrectFile($mysql_data['gmysql-socket']); } else { $dbconf["dsn"]['host'] = $mysql_data['gmysql-host']; $dbconf["dsn"]['port'] = $mysql_data['gmysql-port']; diff --git a/lib/Froxlor/FileDir.php b/lib/Froxlor/FileDir.php index dbca7387..f5eef203 100644 --- a/lib/Froxlor/FileDir.php +++ b/lib/Froxlor/FileDir.php @@ -136,58 +136,61 @@ class FileDir /** * store the default index-file in a given destination folder * - * @param string $loginname customers loginname - * @param string $destination path where to create the file - * @param object $logger FroxlorLogger object - * @param boolean $force force creation whatever the settings say (needed for task #2, create new user) - * + * @param string $loginname + * customers loginname + * @param string $destination + * path where to create the file + * @param object $logger + * FroxlorLogger object + * @param boolean $force + * force creation whatever the settings say (needed for task #2, create new user) + * * @return null */ - public static function storeDefaultIndex($loginname = null, $destination = null, $logger = null, $force = false) { - - if ($force - || (int)Settings::Get('system.store_index_file_subs') == 1 - ) { - $result_stmt = Database::prepare(" + public static function storeDefaultIndex($loginname = null, $destination = null, $logger = null, $force = false) + { + if ($force || (int) Settings::Get('system.store_index_file_subs') == 1) { + $result_stmt = Database::prepare(" SELECT `t`.`value`, `c`.`email` AS `customer_email`, `a`.`email` AS `admin_email`, `c`.`loginname` AS `customer_login`, `a`.`loginname` AS `admin_login` FROM `" . TABLE_PANEL_CUSTOMERS . "` AS `c` INNER JOIN `" . TABLE_PANEL_ADMINS . "` AS `a` ON `c`.`adminid` = `a`.`adminid` INNER JOIN `" . TABLE_PANEL_TEMPLATES . "` AS `t` ON `a`.`adminid` = `t`.`adminid` WHERE `varname` = 'index_html' AND `c`.`loginname` = :loginname"); - Database::pexecute($result_stmt, array('loginname' => $loginname)); - - if (Database::num_rows() > 0) { - - $template = $result_stmt->fetch(\PDO::FETCH_ASSOC); - - $replace_arr = array( - 'SERVERNAME' => Settings::Get('system.hostname'), - 'CUSTOMER' => $template['customer_login'], - 'ADMIN' => $template['admin_login'], - 'CUSTOMER_EMAIL' => $template['customer_email'], - 'ADMIN_EMAIL' => $template['admin_email'] - ); - - // @fixme replace_variables - $htmlcontent = PhpHelper::replace_variables($template['value'], $replace_arr); - $indexhtmlpath = self::makeCorrectFile($destination . '/index.' . Settings::Get('system.index_file_extension')); - $index_html_handler = fopen($indexhtmlpath, 'w'); - fwrite($index_html_handler, $htmlcontent); - fclose($index_html_handler); - if ($logger !== null) { - $logger->logAction(CRON_ACTION, LOG_NOTICE, 'Creating \'index.' . Settings::Get('system.index_file_extension') . '\' for Customer \'' . $template['customer_login'] . '\' based on template in directory ' . escapeshellarg($indexhtmlpath)); - } - - } else { - $destination = self::makeCorrectDir($destination); - if ($logger !== null) { - $logger->logAction(CRON_ACTION, LOG_NOTICE, 'Running: cp -a ' . \Froxlor\Froxlor::getInstallDir() . '/templates/misc/standardcustomer/* ' . escapeshellarg($destination)); - } - self::safe_exec('cp -a ' . \Froxlor\Froxlor::getInstallDir() . '/templates/misc/standardcustomer/* ' . escapeshellarg($destination)); + Database::pexecute($result_stmt, array( + 'loginname' => $loginname + )); + + if (Database::num_rows() > 0) { + + $template = $result_stmt->fetch(\PDO::FETCH_ASSOC); + + $replace_arr = array( + 'SERVERNAME' => Settings::Get('system.hostname'), + 'CUSTOMER' => $template['customer_login'], + 'ADMIN' => $template['admin_login'], + 'CUSTOMER_EMAIL' => $template['customer_email'], + 'ADMIN_EMAIL' => $template['admin_email'] + ); + + // @fixme replace_variables + $htmlcontent = PhpHelper::replace_variables($template['value'], $replace_arr); + $indexhtmlpath = self::makeCorrectFile($destination . '/index.' . Settings::Get('system.index_file_extension')); + $index_html_handler = fopen($indexhtmlpath, 'w'); + fwrite($index_html_handler, $htmlcontent); + fclose($index_html_handler); + if ($logger !== null) { + $logger->logAction(CRON_ACTION, LOG_NOTICE, 'Creating \'index.' . Settings::Get('system.index_file_extension') . '\' for Customer \'' . $template['customer_login'] . '\' based on template in directory ' . escapeshellarg($indexhtmlpath)); } + } else { + $destination = self::makeCorrectDir($destination); + if ($logger !== null) { + $logger->logAction(CRON_ACTION, LOG_NOTICE, 'Running: cp -a ' . \Froxlor\Froxlor::getInstallDir() . '/templates/misc/standardcustomer/* ' . escapeshellarg($destination)); + } + self::safe_exec('cp -a ' . \Froxlor\Froxlor::getInstallDir() . '/templates/misc/standardcustomer/* ' . escapeshellarg($destination)); } - return; + } + return; } /** @@ -290,6 +293,31 @@ class FileDir return $path; } + /** + * Function which returns a correct destination for Postfix Virtual Table + * + * @param + * string The destinations + * @return string the corrected destinations + * @author Florian Lippert + */ + public static function makeCorrectDestination($destination) + { + $search = '/ +/'; + $replace = ' '; + $destination = preg_replace($search, $replace, $destination); + + if (substr($destination, 0, 1) == ' ') { + $destination = substr($destination, 1); + } + + if (substr($destination, - 1, 1) == ' ') { + $destination = substr($destination, 0, strlen($destination) - 1); + } + + return $destination; + } + /** * check if the system is FreeBSD (if exact) * or BSD-based (NetBSD, OpenBSD, etc. diff --git a/lib/functions/filedir/function.findDirs.php b/lib/functions/filedir/function.findDirs.php index fb8f57e5..0f4d8ca5 100644 --- a/lib/functions/filedir/function.findDirs.php +++ b/lib/functions/filedir/function.findDirs.php @@ -36,7 +36,7 @@ function findDirs($path, $uid, $gid) { $_fileList = array(); - $path = makeCorrectDir($path); + $path = \Froxlor\FileDir::makeCorrectDir($path); // valid directory? if (is_dir($path)) { @@ -77,7 +77,7 @@ function findDirs($path, $uid, $gid) // check every file foreach ($its as $fullFileName => $it) { if ($it->isDir() && (fileowner($fullFileName) == $uid || filegroup($fullFileName) == $gid)) { - $_fileList[] = makeCorrectDir(dirname($fullFileName)); + $_fileList[] = \Froxlor\FileDir::makeCorrectDir(dirname($fullFileName)); } } $_fileList[] = $path; diff --git a/lib/functions/filedir/function.makeChownWithNewStats.php b/lib/functions/filedir/function.makeChownWithNewStats.php index 6ead2c50..52eccaae 100644 --- a/lib/functions/filedir/function.makeChownWithNewStats.php +++ b/lib/functions/filedir/function.makeChownWithNewStats.php @@ -49,6 +49,6 @@ function makeChownWithNewStats($row) { // only run chown if directory exists if (file_exists($dir)) { // run chown - safe_exec('chown -R '.escapeshellarg($user).':'.escapeshellarg($group).' '.escapeshellarg(makeCorrectDir($dir))); + safe_exec('chown -R '.escapeshellarg($user).':'.escapeshellarg($group).' '.escapeshellarg(\Froxlor\FileDir::makeCorrectDir($dir))); } } diff --git a/lib/functions/filedir/function.makePathfield.php b/lib/functions/filedir/function.makePathfield.php index c5815dfe..c41443b6 100644 --- a/lib/functions/filedir/function.makePathfield.php +++ b/lib/functions/filedir/function.makePathfield.php @@ -69,7 +69,7 @@ function makePathfield($path, $uid, $gid, $value = '', $dom = false) { if (empty($dir)) { $dir = '/'; } - $dir = makeCorrectDir($dir); + $dir = \Froxlor\FileDir::makeCorrectDir($dir); } $_field.= makeoption($dir, $dir, $value); } diff --git a/lib/functions/filedir/function.storeDefaultIndex.php b/lib/functions/filedir/function.storeDefaultIndex.php index 4f96a77d..ebadb9a0 100644 --- a/lib/functions/filedir/function.storeDefaultIndex.php +++ b/lib/functions/filedir/function.storeDefaultIndex.php @@ -52,7 +52,7 @@ function storeDefaultIndex($loginname = null, $destination = null, $logger = nul ); $htmlcontent = replace_variables($template['value'], $replace_arr); - $indexhtmlpath = makeCorrectFile($destination . '/index.' . Settings::Get('system.index_file_extension')); + $indexhtmlpath = \Froxlor\FileDir::makeCorrectFile($destination . '/index.' . Settings::Get('system.index_file_extension')); $index_html_handler = fopen($indexhtmlpath, 'w'); fwrite($index_html_handler, $htmlcontent); fclose($index_html_handler); @@ -61,7 +61,7 @@ function storeDefaultIndex($loginname = null, $destination = null, $logger = nul } } else { - $destination = makeCorrectDir($destination); + $destination = \Froxlor\FileDir::makeCorrectDir($destination); if ($logger !== null) { $logger->logAction(CRON_ACTION, LOG_NOTICE, 'Running: cp -a ' . \Froxlor\Froxlor::getInstallDir() . '/templates/misc/standardcustomer/* ' . escapeshellarg($destination)); } diff --git a/lib/functions/formfields/hiddenstring/function.validateFormFieldString.php b/lib/functions/formfields/hiddenstring/function.validateFormFieldString.php index 3847b5f4..bb5bfa2a 100644 --- a/lib/functions/formfields/hiddenstring/function.validateFormFieldString.php +++ b/lib/functions/formfields/hiddenstring/function.validateFormFieldString.php @@ -63,15 +63,15 @@ function validateFormFieldHiddenString($fieldname, $fielddata, $newfieldvalue) if(substr($newfieldvalue, -1) != '/') { $newfieldvalue.= '/'; } - $returnvalue = ($newfieldvalue == makeCorrectDir($newfieldvalue)); + $returnvalue = ($newfieldvalue == \Froxlor\FileDir::makeCorrectDir($newfieldvalue)); } elseif(isset($fielddata['string_type']) && $fielddata['string_type'] == 'file') { - $returnvalue = ($newfieldvalue == makeCorrectFile($newfieldvalue)); + $returnvalue = ($newfieldvalue == \Froxlor\FileDir::makeCorrectFile($newfieldvalue)); } elseif(isset($fielddata['string_type']) && $fielddata['string_type'] == 'filedir') { - $returnvalue = (($newfieldvalue == makeCorrectDir($newfieldvalue)) || ($newfieldvalue == makeCorrectFile($newfieldvalue))); + $returnvalue = (($newfieldvalue == \Froxlor\FileDir::makeCorrectDir($newfieldvalue)) || ($newfieldvalue == \Froxlor\FileDir::makeCorrectFile($newfieldvalue))); } elseif(preg_match('/^[^\r\n\t\f\0]*$/D', $newfieldvalue)) { diff --git a/lib/functions/formfields/string/function.validateFormFieldString.php b/lib/functions/formfields/string/function.validateFormFieldString.php index 45544a18..64b7149c 100644 --- a/lib/functions/formfields/string/function.validateFormFieldString.php +++ b/lib/functions/formfields/string/function.validateFormFieldString.php @@ -65,7 +65,7 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue) if (substr($newfieldvalue, -1) != '/') { $newfieldvalue.= '/'; } - $returnvalue = ($newfieldvalue == makeCorrectDir($newfieldvalue)); + $returnvalue = ($newfieldvalue == \Froxlor\FileDir::makeCorrectDir($newfieldvalue)); } } elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'confdir') { @@ -84,7 +84,7 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue) $newfieldvalue = ''; $returnvalue = 'givendirnotallowed'; } else { - $returnvalue = ($newfieldvalue == makeCorrectDir($newfieldvalue)); + $returnvalue = ($newfieldvalue == \Froxlor\FileDir::makeCorrectDir($newfieldvalue)); } } } @@ -94,7 +94,7 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue) $newfieldvalue = ''; $returnvalue = 'stringmustntbeempty'; } else { - $returnvalue = ($newfieldvalue == makeCorrectFile($newfieldvalue)); + $returnvalue = ($newfieldvalue == \Froxlor\FileDir::makeCorrectFile($newfieldvalue)); } } elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'filedir') { @@ -103,7 +103,7 @@ function validateFormFieldString($fieldname, $fielddata, $newfieldvalue) $newfieldvalue = ''; $returnvalue = 'stringmustntbeempty'; } else { - $returnvalue = (($newfieldvalue == makeCorrectDir($newfieldvalue)) || ($newfieldvalue == makeCorrectFile($newfieldvalue))); + $returnvalue = (($newfieldvalue == \Froxlor\FileDir::makeCorrectDir($newfieldvalue)) || ($newfieldvalue == \Froxlor\FileDir::makeCorrectFile($newfieldvalue))); } } elseif (isset($fielddata['string_type']) && $fielddata['string_type'] == 'validate_ip') { diff --git a/lib/functions/froxlor/function.CorrectErrorDocument.php b/lib/functions/froxlor/function.CorrectErrorDocument.php index 72c995d4..1320c6e2 100644 --- a/lib/functions/froxlor/function.CorrectErrorDocument.php +++ b/lib/functions/froxlor/function.CorrectErrorDocument.php @@ -37,7 +37,7 @@ function correctErrorDocument($errdoc = null, $throw_exception = false) { ) { // a file if (substr($errdoc, 0, 1) != '"') { - $errdoc = makeCorrectFile($errdoc); + $errdoc = \Froxlor\FileDir::makeCorrectFile($errdoc); // apache needs a starting-slash (starting at the domains-docroot) if (!substr($errdoc, 0, 1) == '/') { $errdoc = '/'.$errdoc; diff --git a/lib/functions/froxlor/function.createAWStatsConf.php b/lib/functions/froxlor/function.createAWStatsConf.php index 7378fc7d..b3731091 100644 --- a/lib/functions/froxlor/function.createAWStatsConf.php +++ b/lib/functions/froxlor/function.createAWStatsConf.php @@ -32,7 +32,7 @@ function createAWStatsConf($logFile, $siteDomain, $hostAliases, $customerDocroot $header = "## GENERATED BY FROXLOR\n"; $header2 = "## Do not remove the line above! This tells Froxlor to update this configuration\n## If you wish to manually change this configuration file, remove the first line to make sure Froxlor won't rebuild this file\n## Generated for domain {SITE_DOMAIN} on " . date('l dS \of F Y h:i:s A') . "\n"; - $awstats_dir = makeCorrectDir($customerDocroot.'/awstats/'.$siteDomain.'/'); + $awstats_dir = \Froxlor\FileDir::makeCorrectDir($customerDocroot.'/awstats/'.$siteDomain.'/'); if (!is_dir($awstats_dir)) { safe_exec('mkdir -p '.escapeshellarg($awstats_dir)); } @@ -53,17 +53,17 @@ function createAWStatsConf($logFile, $siteDomain, $hostAliases, $customerDocroot '/\{AWSTATS_CONF\}/' ); $replace = array( - makeCorrectFile($logFile), + \Froxlor\FileDir::makeCorrectFile($logFile), $siteDomain, $hostAliases, $awstats_dir, - makeCorrectDir(Settings::Get('system.awstats_conf')) + \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.awstats_conf')) ); // File names - $domain_file = makeCorrectFile(Settings::Get('system.awstats_conf').'/awstats.' . $siteDomain . '.conf'); + $domain_file = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.awstats_conf').'/awstats.' . $siteDomain . '.conf'); $model_file = \Froxlor\Froxlor::getInstallDir().'/templates/misc/awstats/awstats.froxlor.model.conf'; - $model_file = makeCorrectFile($model_file); + $model_file = \Froxlor\FileDir::makeCorrectFile($model_file); // Test if the file exists if (file_exists($domain_file)) { diff --git a/lib/functions/froxlor/function.getThemes.php b/lib/functions/froxlor/function.getThemes.php index cb5cf63d..6ec6963f 100644 --- a/lib/functions/froxlor/function.getThemes.php +++ b/lib/functions/froxlor/function.getThemes.php @@ -22,7 +22,7 @@ */ function getThemes() { - $themespath = makeCorrectDir(\Froxlor\Froxlor::getInstallDir().'/templates/'); + $themespath = \Froxlor\FileDir::makeCorrectDir(\Froxlor\Froxlor::getInstallDir().'/templates/'); $themes_available = array(); if (is_dir($themespath)) { diff --git a/lib/functions/froxlor/function.updateCounters.php b/lib/functions/froxlor/function.updateCounters.php index 1f02139e..60d0acf8 100644 --- a/lib/functions/froxlor/function.updateCounters.php +++ b/lib/functions/froxlor/function.updateCounters.php @@ -78,7 +78,7 @@ function updateCounters($returndebuginfo = false) { while($customer_emails_row = $customer_emails_result_stmt->fetch(PDO::FETCH_ASSOC)) { if($customer_emails_row['destination'] != '') { - $customer_emails_row['destination'] = explode(' ', makeCorrectDestination($customer_emails_row['destination'])); + $customer_emails_row['destination'] = explode(' ', \Froxlor\FileDir::makeCorrectDestination($customer_emails_row['destination'])); $customer_email_forwarders+= count($customer_emails_row['destination']); if(in_array($customer_emails_row['email_full'], $customer_emails_row['destination'])) { diff --git a/lib/functions/validate/function.appendOpenbasedirPath.php b/lib/functions/validate/function.appendOpenbasedirPath.php index cdcc11f6..bbffea5c 100644 --- a/lib/functions/validate/function.appendOpenbasedirPath.php +++ b/lib/functions/validate/function.appendOpenbasedirPath.php @@ -37,9 +37,9 @@ function appendOpenBasedirPath($path = '', $first = false) && ! preg_match("#:#", $path)) { if (preg_match("#^/dev/urandom#i", $path)) { - $path = makeCorrectFile($path); + $path = \Froxlor\FileDir::makeCorrectFile($path); } else { - $path = makeCorrectDir($path); + $path = \Froxlor\FileDir::makeCorrectDir($path); } // check for php-version that requires the trailing diff --git a/lib/functions/validate/function.checkDisallowedPaths.php b/lib/functions/validate/function.checkDisallowedPaths.php index 80422014..2b8aed52 100644 --- a/lib/functions/validate/function.checkDisallowedPaths.php +++ b/lib/functions/validate/function.checkDisallowedPaths.php @@ -38,7 +38,7 @@ function checkDisallowedPaths($path = null) { "/opt/", "/proc/", "/root/", "/run/", "/sbin/", "/sys/", "/tmp/", "/usr/", "/var/" ); - $path = makeCorrectDir($path); + $path = \Froxlor\FileDir::makeCorrectDir($path); // check if it's a disallowed path if (in_array($path, $disallowed_values)) { diff --git a/lib/functions/validate/function.checkPathConflicts.php b/lib/functions/validate/function.checkPathConflicts.php index da58eb03..6d275cb0 100644 --- a/lib/functions/validate/function.checkPathConflicts.php +++ b/lib/functions/validate/function.checkPathConflicts.php @@ -20,13 +20,13 @@ function checkPathConflicts($fieldname, $fielddata, $newfieldvalue, $allnewfield if((int)Settings::Get('system.mod_fcgid') == 1) { // fcgid-configdir has changed -> check against customer-doc-prefix if ($fieldname == "system_mod_fcgid_configdir") { - $newdir = makeCorrectDir($newfieldvalue); - $cdir = makeCorrectDir(Settings::Get('system.documentroot_prefix')); + $newdir = \Froxlor\FileDir::makeCorrectDir($newfieldvalue); + $cdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.documentroot_prefix')); } // customer-doc-prefix has changed -> check against fcgid-configdir elseif ($fieldname == "system_documentroot_prefix") { - $newdir = makeCorrectDir($newfieldvalue); - $cdir = makeCorrectDir(Settings::Get('system.mod_fcgid_configdir')); + $newdir = \Froxlor\FileDir::makeCorrectDir($newfieldvalue); + $cdir = \Froxlor\FileDir::makeCorrectDir(Settings::Get('system.mod_fcgid_configdir')); } // neither dir can be within the other nor can they be equal diff --git a/lib/functions/validate/function.makeCorrectDestination.php b/lib/functions/validate/function.makeCorrectDestination.php deleted file mode 100644 index ec92e0a8..00000000 --- a/lib/functions/validate/function.makeCorrectDestination.php +++ /dev/null @@ -1,45 +0,0 @@ - (2003-2009) - * @author Froxlor team (2010-) - * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt - * @package Functions - * - */ - -/** - * Function which returns a correct destination for Postfix Virtual Table - * - * @param string The destinations - * @return string the corrected destinations - * @author Florian Lippert - */ - -function makeCorrectDestination($destination) -{ - $search = '/ +/'; - $replace = ' '; - $destination = preg_replace($search, $replace, $destination); - - if(substr($destination, 0, 1) == ' ') - { - $destination = substr($destination, 1); - } - - if(substr($destination, -1, 1) == ' ') - { - $destination = substr($destination, 0, strlen($destination) - 1); - } - - return $destination; -} diff --git a/logfiles_viewer.php b/logfiles_viewer.php index c915245f..2f305845 100644 --- a/logfiles_viewer.php +++ b/logfiles_viewer.php @@ -59,8 +59,8 @@ if (function_exists('exec')) { } } // The normal access/error - logging is enabled - $error_log = makeCorrectFile(Settings::Get('system.logfiles_directory') . getCustomerDetail($domain['customerid'], 'loginname') . $speciallogfile . '-error.log'); - $access_log = makeCorrectFile(Settings::Get('system.logfiles_directory') . getCustomerDetail($domain['customerid'], 'loginname') . $speciallogfile . '-access.log'); + $error_log = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . getCustomerDetail($domain['customerid'], 'loginname') . $speciallogfile . '-error.log'); + $access_log = \Froxlor\FileDir::makeCorrectFile(Settings::Get('system.logfiles_directory') . getCustomerDetail($domain['customerid'], 'loginname') . $speciallogfile . '-access.log'); // error log if (file_exists($error_log)) {