diff --git a/index.php b/index.php index de0b38f4..2bdd947c 100644 --- a/index.php +++ b/index.php @@ -162,7 +162,7 @@ if ($action == '2fa_entercode') { ]); exit(); } elseif ($action == 'login') { - if (isset($_POST['send']) && $_POST['send'] == 'send') { + if (!empty($_POST)) { $loginname = Validate::validate($_POST['loginname'], 'loginname'); $password = Validate::validate($_POST['password'], 'password'); @@ -432,13 +432,13 @@ if ($action == '2fa_entercode') { } $lastqrystr = ""; if (isset($_REQUEST['qrystr']) && $_REQUEST['qrystr'] != "") { - $lastqrystr = htmlspecialchars($_REQUEST['qrystr'], ENT_QUOTES); + $lastqrystr = urlencode($_REQUEST['qrystr']); } + $_SESSION['lastscript'] = $lastscript; + $_SESSION['lastqrystr'] = $lastqrystr; UI::view('login/login.html.twig', [ 'pagetitle' => 'Login', - 'lastscript' => $lastscript, - 'lastqrystr' => $lastqrystr, 'upd_in_progress' => $update_in_progress, 'message' => $message, 'successmsg' => $successmessage @@ -450,7 +450,7 @@ if ($action == 'forgotpwd') { $adminchecked = false; $message = ''; - if (isset($_POST['send']) && $_POST['send'] == 'send') { + if (!empty($_POST)) { $loginname = Validate::validate($_POST['loginname'], 'loginname'); $email = Validate::validateEmail($_POST['loginemail']); $result_stmt = Database::prepare("SELECT `adminid`, `customerid`, `customernumber`, `firstname`, `name`, `company`, `email`, `loginname`, `def_language`, `deactivated` FROM `" . TABLE_PANEL_CUSTOMERS . "` @@ -634,7 +634,7 @@ if ($action == 'forgotpwd') { UI::view('login/fpwd.html.twig', [ 'pagetitle' => lng('login.presend'), - 'action' => $action, + 'formaction' => 'index.php?action='.$action, 'message' => $message, ]); } @@ -657,7 +657,7 @@ if ($action == 'resetpwd') { $check = substr($activationcode, 40, 10); if (substr(md5($third . $timestamp), 0, 10) == $check && $timestamp >= time() - 86400) { - if (isset($_POST['send']) && $_POST['send'] == 'send') { + if (!empty($_POST)) { $stmt = Database::prepare("SELECT `userid`, `admin` FROM `" . TABLE_PANEL_ACTIVATION . "` WHERE `activationcode` = :activationcode"); $result = Database::pexecute_first($stmt, [ @@ -799,29 +799,34 @@ function finishLogin($userinfo) } $qryparams = []; - if (isset($_POST['qrystr']) && $_POST['qrystr'] != "") { - parse_str(urldecode($_POST['qrystr']), $qryparams); + if (isset($_SESSION['lastqrystr']) && !empty($_SESSION['lastqrystr'])) { + parse_str(urldecode($_SESSION['lastqrystr']), $qryparams); + unset($_SESSION['lastqrystr']); } if ($userinfo['adminsession'] == '1') { if (Froxlor::hasUpdates() || Froxlor::hasDbUpdates()) { Response::redirectTo('admin_updates.php?page=overview'); } else { - if (isset($_POST['script']) && $_POST['script'] != "") { - if (preg_match("/customer\_/", $_POST['script']) === 1) { + if (isset($_SESSION['lastscript']) && !empty($_SESSION['lastscript'])) { + $lastscript = $_SESSION['lastscript']; + unset($_SESSION['lastscript']); + if (preg_match("/customer\_/", $lastscript) === 1) { Response::redirectTo('admin_customers.php', [ "page" => "customers" ]); } else { - Response::redirectTo($_POST['script'], $qryparams); + Response::redirectTo($lastscript, $qryparams); } } else { Response::redirectTo('admin_index.php', $qryparams); } } } else { - if (isset($_POST['script']) && $_POST['script'] != "") { - Response::redirectTo($_POST['script'], $qryparams); + if (isset($_SESSION['lastscript']) && !empty($_SESSION['lastscript'])) { + $lastscript = $_SESSION['lastscript']; + unset($_SESSION['lastscript']); + Response::redirectTo($lastscript, $qryparams); } else { Response::redirectTo('customer_index.php', $qryparams); } diff --git a/lib/Froxlor/Api/Commands/Admins.php b/lib/Froxlor/Api/Commands/Admins.php index ae7d12c3..10175ddf 100644 --- a/lib/Froxlor/Api/Commands/Admins.php +++ b/lib/Froxlor/Api/Commands/Admins.php @@ -95,7 +95,7 @@ class Admins extends ApiCommand implements ResourceEntity public function listing() { if ($this->isAdmin() && $this->getUserDetail('change_serversettings') == 1) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] list admins"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] list admins"); $query_fields = []; $result_stmt = Database::prepare(" SELECT * @@ -407,7 +407,7 @@ class Admins extends ApiCommand implements ResourceEntity ]; $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] get admin '" . $result['loginname'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] get admin '" . $result['loginname'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "loginname '" . $loginname . "'"); @@ -705,7 +705,7 @@ class Admins extends ApiCommand implements ResourceEntity WHERE `adminid` = :adminid "); Database::pexecute($upd_stmt, $upd_data, true, true); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] edited admin '" . $result['loginname'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] edited admin '" . $result['loginname'] . "'"); // get all admin-data for return-array $result = $this->apiCall('Admins.get', [ diff --git a/lib/Froxlor/Api/Commands/Certificates.php b/lib/Froxlor/Api/Commands/Certificates.php index 3ad44633..df0e7619 100644 --- a/lib/Froxlor/Api/Commands/Certificates.php +++ b/lib/Froxlor/Api/Commands/Certificates.php @@ -97,7 +97,7 @@ class Certificates extends ApiCommand implements ResourceEntity } if (!$has_cert) { $this->addOrUpdateCertificate($domain['id'], $ssl_cert_file, $ssl_key_file, $ssl_ca_file, $ssl_cert_chainfile, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added ssl-certificate for '" . $domain['domain'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added ssl-certificate for '" . $domain['domain'] . "'"); $result = $this->apiCall('Certificates.get', [ 'id' => $domain['id'] ]); @@ -248,7 +248,7 @@ class Certificates extends ApiCommand implements ResourceEntity $ssl_ca_file = $this->getParam('ssl_ca_file', true, ''); $ssl_cert_chainfile = $this->getParam('ssl_cert_chainfile', true, ''); $this->addOrUpdateCertificate($domain['id'], $ssl_cert_file, $ssl_key_file, $ssl_ca_file, $ssl_cert_chainfile, false); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] updated ssl-certificate for '" . $domain['domain'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] updated ssl-certificate for '" . $domain['domain'] . "'"); $result = $this->apiCall('Certificates.get', [ 'id' => $domain['id'] ]); @@ -470,7 +470,7 @@ class Certificates extends ApiCommand implements ResourceEntity if ($chk['letsencrypt'] == '1') { Cronjob::inserttask(TaskId::DELETE_DOMAIN_SSL, $chk['domain']); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] removed ssl-certificate for '" . $chk['domain'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] removed ssl-certificate for '" . $chk['domain'] . "'"); return $this->response($result); } throw new Exception("Unable to determine SSL certificate. Maybe no access?", 406); diff --git a/lib/Froxlor/Api/Commands/Cronjobs.php b/lib/Froxlor/Api/Commands/Cronjobs.php index d9678763..73d0c933 100644 --- a/lib/Froxlor/Api/Commands/Cronjobs.php +++ b/lib/Froxlor/Api/Commands/Cronjobs.php @@ -147,7 +147,7 @@ class Cronjobs extends ApiCommand implements ResourceEntity // insert task to re-generate the cron.d-file Cronjob::inserttask(TaskId::REBUILD_CRON); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] cronjob with description '" . $result['module'] . '/' . $result['cronfile'] . "' has been updated by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] cronjob with description '" . $result['module'] . '/' . $result['cronfile'] . "' has been updated by '" . $this->getUserDetail('loginname') . "'"); $result = $this->apiCall('Cronjobs.get', [ 'id' => $id ]); @@ -177,7 +177,7 @@ class Cronjobs extends ApiCommand implements ResourceEntity public function listing() { if ($this->isAdmin()) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] list cronjobs"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] list cronjobs"); $query_fields = []; $result_stmt = Database::prepare(" SELECT `c`.* FROM `" . TABLE_PANEL_CRONRUNS . "` `c` " . $this->getSearchWhere($query_fields) . $this->getOrderBy() . $this->getLimit()); diff --git a/lib/Froxlor/Api/Commands/CustomerBackups.php b/lib/Froxlor/Api/Commands/CustomerBackups.php index 412bc0b6..83360684 100644 --- a/lib/Froxlor/Api/Commands/CustomerBackups.php +++ b/lib/Froxlor/Api/Commands/CustomerBackups.php @@ -212,7 +212,7 @@ class CustomerBackups extends ApiCommand implements ResourceEntity $result[] = $entry; } } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list customer-backups"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list customer-backups"); return $this->response([ 'count' => count($result), 'list' => $result diff --git a/lib/Froxlor/Api/Commands/Customers.php b/lib/Froxlor/Api/Commands/Customers.php index e4c23e6c..b6ac3c89 100644 --- a/lib/Froxlor/Api/Commands/Customers.php +++ b/lib/Froxlor/Api/Commands/Customers.php @@ -895,7 +895,7 @@ class Customers extends ApiCommand implements ResourceEntity $result['dbspace_used'] = 0; } } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get customer '" . $result['loginname'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get customer '" . $result['loginname'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "loginname '" . $loginname . "'"); @@ -1327,7 +1327,7 @@ class Customers extends ApiCommand implements ResourceEntity 'vu' => $valid_until ], true, true); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] " . ($deactivated ? 'deactivated' : 'reactivated') . " user '" . $result['loginname'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] " . ($deactivated ? 'deactivated' : 'reactivated') . " user '" . $result['loginname'] . "'"); Cronjob::inserttask(TaskId::REBUILD_VHOST); } @@ -1538,7 +1538,7 @@ class Customers extends ApiCommand implements ResourceEntity Database::query($admin_update_query); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] edited user '" . $result['loginname'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] edited user '" . $result['loginname'] . "'"); /* * move customer to another admin/reseller; #1166 @@ -1911,7 +1911,7 @@ class Customers extends ApiCommand implements ResourceEntity // now, recalculate the resource-usage for the old and the new admin User::updateCounters(false); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] moved user '" . $c_result['loginname'] . "' from admin/reseller '" . $c_result['adminname'] . " to admin/reseller '" . $a_result['loginname'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] moved user '" . $c_result['loginname'] . "' from admin/reseller '" . $c_result['adminname'] . " to admin/reseller '" . $a_result['loginname'] . "'"); $result = $this->apiCall('Customers.get', [ 'id' => $c_result['customerid'] diff --git a/lib/Froxlor/Api/Commands/DirOptions.php b/lib/Froxlor/Api/Commands/DirOptions.php index 96a89265..f55ef889 100644 --- a/lib/Froxlor/Api/Commands/DirOptions.php +++ b/lib/Froxlor/Api/Commands/DirOptions.php @@ -144,7 +144,7 @@ class DirOptions extends ApiCommand implements ResourceEntity ]; Database::pexecute($stmt, $params, true, true); $id = Database::lastInsertId(); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added directory-option for '" . $userpath . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added directory-option for '" . $userpath . "'"); Cronjob::inserttask(TaskId::REBUILD_VHOST); $result = $this->apiCall('DirOptions.get', [ @@ -247,7 +247,7 @@ class DirOptions extends ApiCommand implements ResourceEntity $params['id'] = $id; $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get directory options for '" . $result['path'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get directory options for '" . $result['path'] . "'"); return $this->response($result); } $key = "id #" . $id; @@ -331,7 +331,7 @@ class DirOptions extends ApiCommand implements ResourceEntity "id" => $id ]; Database::pexecute($stmt, $params, true, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] edited directory options for '" . str_replace($customer['documentroot'], '/', $result['path']) . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] edited directory options for '" . str_replace($customer['documentroot'], '/', $result['path']) . "'"); } $result = $this->apiCall('DirOptions.get', [ @@ -379,7 +379,7 @@ class DirOptions extends ApiCommand implements ResourceEntity while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list directory-options"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list directory-options"); return $this->response([ 'count' => count($result), 'list' => $result @@ -478,7 +478,7 @@ class DirOptions extends ApiCommand implements ResourceEntity "customerid" => $customer_data['customerid'], "id" => $id ], true, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted directory-option for '" . str_replace($customer_data['documentroot'], '/', $result['path']) . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] deleted directory-option for '" . str_replace($customer_data['documentroot'], '/', $result['path']) . "'"); Cronjob::inserttask(TaskId::REBUILD_VHOST); return $this->response($result); } diff --git a/lib/Froxlor/Api/Commands/DirProtections.php b/lib/Froxlor/Api/Commands/DirProtections.php index 690adf8b..b21bdd6e 100644 --- a/lib/Froxlor/Api/Commands/DirProtections.php +++ b/lib/Froxlor/Api/Commands/DirProtections.php @@ -129,7 +129,7 @@ class DirProtections extends ApiCommand implements ResourceEntity ]; Database::pexecute($stmt, $params, true, true); $id = Database::lastInsertId(); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added directory-protection for '" . $username . " (" . $path . ")'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added directory-protection for '" . $username . " (" . $path . ")'"); Cronjob::inserttask(TaskId::REBUILD_VHOST); $result = $this->apiCall('DirProtections.get', [ @@ -196,7 +196,7 @@ class DirProtections extends ApiCommand implements ResourceEntity $params['idun'] = ($id <= 0 ? $username : $id); $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get directory protection for '" . $result['path'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get directory protection for '" . $result['path'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "username '" . $username . "'"); @@ -279,7 +279,7 @@ class DirProtections extends ApiCommand implements ResourceEntity Cronjob::inserttask(TaskId::REBUILD_VHOST); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] updated directory-protection '" . $result['username'] . " (" . $result['path'] . ")'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] updated directory-protection '" . $result['username'] . " (" . $result['path'] . ")'"); $result = $this->apiCall('DirProtections.get', [ 'id' => $result['id'] ]); @@ -325,7 +325,7 @@ class DirProtections extends ApiCommand implements ResourceEntity while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list directory-protections"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list directory-protections"); return $this->response([ 'count' => count($result), 'list' => $result @@ -413,7 +413,7 @@ class DirProtections extends ApiCommand implements ResourceEntity "id" => $id ]); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted htpasswd for '" . $result['username'] . " (" . $result['path'] . ")'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] deleted htpasswd for '" . $result['username'] . " (" . $result['path'] . ")'"); Cronjob::inserttask(TaskId::REBUILD_VHOST); return $this->response($result); } diff --git a/lib/Froxlor/Api/Commands/DomainZones.php b/lib/Froxlor/Api/Commands/DomainZones.php index e8e2163e..3975fd4a 100644 --- a/lib/Froxlor/Api/Commands/DomainZones.php +++ b/lib/Froxlor/Api/Commands/DomainZones.php @@ -413,7 +413,7 @@ class DomainZones extends ApiCommand implements ResourceEntity $zone = Dns::createDomainZone($id); $zonefile = (string)$zone; - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get dns-zone for '" . $result['domain'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get dns-zone for '" . $result['domain'] . "'"); return $this->response(explode("\n", $zonefile)); } diff --git a/lib/Froxlor/Api/Commands/Domains.php b/lib/Froxlor/Api/Commands/Domains.php index 22639b7d..7fb7991c 100644 --- a/lib/Froxlor/Api/Commands/Domains.php +++ b/lib/Froxlor/Api/Commands/Domains.php @@ -888,7 +888,7 @@ class Domains extends ApiCommand implements ResourceEntity $result['ipsandports'] = $this->getIpsForDomain($result['id']); } $result['domain_hascert'] = $this->getHasCertValueForDomain((int)$result['id'], (int)$result['parentdomainid']); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] get domain '" . $result['domain'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] get domain '" . $result['domain'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "domainname '" . $domainname . "'"); @@ -1785,7 +1785,7 @@ class Domains extends ApiCommand implements ResourceEntity Database::pexecute($upd_stmt, [ 'id' => $id ], true, true); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] removed specialsettings on all subdomains of domain #" . $id); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] removed specialsettings on all subdomains of domain #" . $id); } $wwwserveralias = ($serveraliasoption == '1') ? '1' : '0'; @@ -2190,7 +2190,7 @@ class Domains extends ApiCommand implements ResourceEntity // remove domain from acme.sh / lets encrypt if used Cronjob::inserttask(TaskId::DELETE_DOMAIN_SSL, $result['domain']); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] deleted domain/subdomains (#" . $result['id'] . ")"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] deleted domain/subdomains (#" . $result['id'] . ")"); User::updateCounters(); Cronjob::inserttask(TaskId::REBUILD_VHOST); // Using nameserver, insert a task which rebuilds the server config diff --git a/lib/Froxlor/Api/Commands/EmailAccounts.php b/lib/Froxlor/Api/Commands/EmailAccounts.php index feb0cd9a..605a6daa 100644 --- a/lib/Froxlor/Api/Commands/EmailAccounts.php +++ b/lib/Froxlor/Api/Commands/EmailAccounts.php @@ -311,7 +311,7 @@ class EmailAccounts extends ApiCommand implements ResourceEntity } } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added email account for '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added email account for '" . $result['email_full'] . "'"); $result = $this->apiCall('Emails.get', [ 'emailaddr' => $result['email_full'] ]); @@ -460,7 +460,7 @@ class EmailAccounts extends ApiCommand implements ResourceEntity Admins::increaseUsage($customer['adminid'], 'email_quota_used', '', ($quota - $result['quota'])); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] updated email account '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] updated email account '" . $result['email_full'] . "'"); $result = $this->apiCall('Emails.get', [ 'emailaddr' => $result['email_full'] ]); @@ -566,7 +566,7 @@ class EmailAccounts extends ApiCommand implements ResourceEntity Customers::decreaseUsage($customer['customerid'], 'email_accounts_used'); Customers::decreaseUsage($customer['customerid'], 'email_quota_used', '', $quota); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted email account for '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] deleted email account for '" . $result['email_full'] . "'"); return $this->response($result); } } diff --git a/lib/Froxlor/Api/Commands/EmailDomains.php b/lib/Froxlor/Api/Commands/EmailDomains.php index 0e7f0b37..8fadf3a0 100644 --- a/lib/Froxlor/Api/Commands/EmailDomains.php +++ b/lib/Froxlor/Api/Commands/EmailDomains.php @@ -89,7 +89,7 @@ class EmailDomains extends ApiCommand implements ResourceEntity while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list email-domains"); return $this->response([ 'count' => count($result), diff --git a/lib/Froxlor/Api/Commands/EmailForwarders.php b/lib/Froxlor/Api/Commands/EmailForwarders.php index 28eb9226..79c178b0 100644 --- a/lib/Froxlor/Api/Commands/EmailForwarders.php +++ b/lib/Froxlor/Api/Commands/EmailForwarders.php @@ -121,7 +121,7 @@ class EmailForwarders extends ApiCommand implements ResourceEntity // update customer usage Customers::increaseUsage($customer['customerid'], 'email_forwarders_used'); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added email forwarder for '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added email forwarder for '" . $result['email_full'] . "'"); $result = $this->apiCall('Emails.get', [ 'emailaddr' => $result['email_full'] @@ -298,7 +298,7 @@ class EmailForwarders extends ApiCommand implements ResourceEntity // update customer usage Customers::decreaseUsage($customer['customerid'], 'email_forwarders_used'); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted email forwarder for '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] deleted email forwarder for '" . $result['email_full'] . "'"); $result = $this->apiCall('Emails.get', [ 'emailaddr' => $result['email_full'] diff --git a/lib/Froxlor/Api/Commands/Emails.php b/lib/Froxlor/Api/Commands/Emails.php index 3ef990c6..221efa9b 100644 --- a/lib/Froxlor/Api/Commands/Emails.php +++ b/lib/Froxlor/Api/Commands/Emails.php @@ -159,7 +159,7 @@ class Emails extends ApiCommand implements ResourceEntity // update customer usage Customers::increaseUsage($customer['customerid'], 'emails_used'); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added email address '" . $email_full . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added email address '" . $email_full . "'"); $result = $this->apiCall('Emails.get', [ 'emailaddr' => $email_full @@ -199,7 +199,7 @@ class Emails extends ApiCommand implements ResourceEntity ); $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get email address '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get email address '" . $result['email_full'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "emailaddr '" . $emailaddr . "'"); @@ -294,7 +294,7 @@ class Emails extends ApiCommand implements ResourceEntity "id" => $id ]; Database::pexecute($stmt, $params, true, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] toggled catchall-flag for email address '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] toggled catchall-flag for email address '" . $result['email_full'] . "'"); $result = $this->apiCall('Emails.get', [ 'emailaddr' => $result['email_full'] @@ -340,7 +340,7 @@ class Emails extends ApiCommand implements ResourceEntity while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list email-addresses"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list email-addresses"); return $this->response([ 'count' => count($result), 'list' => $result @@ -445,7 +445,7 @@ class Emails extends ApiCommand implements ResourceEntity ], true, true); Customers::decreaseUsage($customer['customerid'], 'emails_used'); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted email address '" . $result['email_full'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] deleted email address '" . $result['email_full'] . "'"); return $this->response($result); } } diff --git a/lib/Froxlor/Api/Commands/FpmDaemons.php b/lib/Froxlor/Api/Commands/FpmDaemons.php index a0577ad4..26d4d493 100644 --- a/lib/Froxlor/Api/Commands/FpmDaemons.php +++ b/lib/Froxlor/Api/Commands/FpmDaemons.php @@ -64,7 +64,7 @@ class FpmDaemons extends ApiCommand implements ResourceEntity public function listing() { if ($this->isAdmin()) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] list fpm-daemons"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] list fpm-daemons"); $query_fields = []; $result_stmt = Database::prepare(" SELECT * FROM `" . TABLE_PANEL_FPMDAEMONS . "`" . $this->getSearchWhere($query_fields) . $this->getOrderBy() . $this->getLimit()); @@ -258,7 +258,7 @@ class FpmDaemons extends ApiCommand implements ResourceEntity $id = Database::lastInsertId(); Cronjob::inserttask(TaskId::REBUILD_VHOST); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] fpm-daemon with description '" . $description . "' has been created by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] fpm-daemon with description '" . $description . "' has been created by '" . $this->getUserDetail('loginname') . "'"); $result = $this->apiCall('FpmDaemons.get', [ 'id' => $id ]); @@ -384,7 +384,7 @@ class FpmDaemons extends ApiCommand implements ResourceEntity Database::pexecute($upd_stmt, $upd_data, true, true); Cronjob::inserttask(TaskId::REBUILD_VHOST); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] fpm-daemon with description '" . $description . "' has been updated by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] fpm-daemon with description '" . $description . "' has been updated by '" . $this->getUserDetail('loginname') . "'"); $result = $this->apiCall('FpmDaemons.get', [ 'id' => $id ]); @@ -433,7 +433,7 @@ class FpmDaemons extends ApiCommand implements ResourceEntity ], true, true); Cronjob::inserttask(TaskId::REBUILD_VHOST); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] fpm-daemon setting '" . $result['description'] . "' has been deleted by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] fpm-daemon setting '" . $result['description'] . "' has been deleted by '" . $this->getUserDetail('loginname') . "'"); return $this->response($result); } throw new Exception("Not allowed to execute given command.", 403); diff --git a/lib/Froxlor/Api/Commands/Froxlor.php b/lib/Froxlor/Api/Commands/Froxlor.php index d7cb4920..eaa657c1 100644 --- a/lib/Froxlor/Api/Commands/Froxlor.php +++ b/lib/Froxlor/Api/Commands/Froxlor.php @@ -73,7 +73,7 @@ class Froxlor extends ApiCommand if (empty($uc_data) || empty($response) || $uc_data['ts'] + self::UPDATE_CHECK_INTERVAL < time() || $uc_data['channel'] != Settings::Get('system.update_channel') || $force_ucheck) { // log our actions - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] checking for updates"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] checking for updates"); // check for new version $aucheck = AutoUpdate::checkVersion(); @@ -143,7 +143,7 @@ class Froxlor extends ApiCommand { if ($this->isAdmin() && $this->getUserDetail('change_serversettings')) { $json_str = $this->getParam('json_str'); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "User " . $this->getUserDetail('loginname') . " imported settings"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "User " . $this->getUserDetail('loginname') . " imported settings"); try { SImExporter::import($json_str); Cronjob::inserttask(TaskId::REBUILD_VHOST); diff --git a/lib/Froxlor/Api/Commands/Ftps.php b/lib/Froxlor/Api/Commands/Ftps.php index 76826087..41dc8cb9 100644 --- a/lib/Froxlor/Api/Commands/Ftps.php +++ b/lib/Froxlor/Api/Commands/Ftps.php @@ -257,7 +257,7 @@ class Ftps extends ApiCommand implements ResourceEntity Customers::increaseUsage($customer['customerid'], 'ftp_lastaccountnumber'); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added ftp-account '" . $username . " (" . $path . ")'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added ftp-account '" . $username . " (" . $path . ")'"); Cronjob::inserttask(TaskId::CREATE_FTP); if ($sendinfomail == 1) { @@ -302,7 +302,7 @@ class Ftps extends ApiCommand implements ResourceEntity $this->mailer()->clearAddresses(); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] added ftp-user '" . $username . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added ftp-user '" . $username . "'"); $result = $this->apiCall('Ftps.get', [ 'username' => $username @@ -367,7 +367,7 @@ class Ftps extends ApiCommand implements ResourceEntity $params['idun'] = ($id <= 0 ? $username : $id); $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get ftp-user '" . $result['username'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get ftp-user '" . $result['username'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "username '" . $username . "'"); @@ -453,7 +453,7 @@ class Ftps extends ApiCommand implements ResourceEntity "id" => $id, "password" => $cryptPassword ], true, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] updated ftp-account password for '" . $result['username'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] updated ftp-account password for '" . $result['username'] . "'"); } // path update? @@ -471,7 +471,7 @@ class Ftps extends ApiCommand implements ResourceEntity "customerid" => $customer['customerid'], "id" => $id ], true, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] updated ftp-account homdir for '" . $result['username'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] updated ftp-account homdir for '" . $result['username'] . "'"); } } // it's the task for "new ftp" but that will @@ -533,7 +533,7 @@ class Ftps extends ApiCommand implements ResourceEntity while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list ftp-users"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list ftp-users"); return $this->response([ 'count' => count($result), 'list' => $result diff --git a/lib/Froxlor/Api/Commands/HostingPlans.php b/lib/Froxlor/Api/Commands/HostingPlans.php index 7fde4652..971307b5 100644 --- a/lib/Froxlor/Api/Commands/HostingPlans.php +++ b/lib/Froxlor/Api/Commands/HostingPlans.php @@ -61,7 +61,7 @@ class HostingPlans extends ApiCommand implements ResourceEntity public function listing() { if ($this->isAdmin()) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] list hosting-plans"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] list hosting-plans"); $query_fields = []; $result_stmt = Database::prepare(" SELECT p.*, a.loginname as adminname @@ -227,7 +227,7 @@ class HostingPlans extends ApiCommand implements ResourceEntity 'valuearr' => json_encode($value_arr) ]; Database::pexecute($ins_stmt, $ins_data, true, true); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] added hosting-plan '" . $name . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] added hosting-plan '" . $name . "'"); $result = $this->apiCall('HostingPlans.get', [ 'planname' => $name ]); @@ -264,7 +264,7 @@ class HostingPlans extends ApiCommand implements ResourceEntity } $result = Database::pexecute_first($result_stmt, $params, true, true); if ($result) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] get hosting-plan '" . $result['name'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] get hosting-plan '" . $result['name'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "planname '" . $planname . "'"); @@ -414,7 +414,7 @@ class HostingPlans extends ApiCommand implements ResourceEntity 'id' => $id ]; Database::pexecute($upd_stmt, $update_data, true, true); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] updated hosting-plan '" . $result['name'] . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] updated hosting-plan '" . $result['name'] . "'"); return $this->response($update_data); } throw new Exception("Not allowed to execute given command.", 403); diff --git a/lib/Froxlor/Api/Commands/IpsAndPorts.php b/lib/Froxlor/Api/Commands/IpsAndPorts.php index d3dfe6be..0aac2182 100644 --- a/lib/Froxlor/Api/Commands/IpsAndPorts.php +++ b/lib/Froxlor/Api/Commands/IpsAndPorts.php @@ -65,7 +65,7 @@ class IpsAndPorts extends ApiCommand implements ResourceEntity public function listing() { if ($this->isAdmin() && ($this->getUserDetail('change_serversettings') || !empty($this->getUserDetail('ip')))) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] list ips and ports"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] list ips and ports"); $ip_where = ""; $append_where = false; if (!empty($this->getUserDetail('ip')) && $this->getUserDetail('ip') != -1) { @@ -335,7 +335,7 @@ class IpsAndPorts extends ApiCommand implements ResourceEntity 'id' => $id ], true, true); if ($result) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] get ip " . $result['ip'] . " " . $result['port']); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] get ip " . $result['ip'] . " " . $result['port']); return $this->response($result); } throw new Exception("IP/port with id #" . $id . " could not be found", 404); diff --git a/lib/Froxlor/Api/Commands/MysqlServer.php b/lib/Froxlor/Api/Commands/MysqlServer.php index c1fbbea2..a3f6a830 100644 --- a/lib/Froxlor/Api/Commands/MysqlServer.php +++ b/lib/Froxlor/Api/Commands/MysqlServer.php @@ -26,14 +26,15 @@ namespace Froxlor\Api\Commands; use Exception; -use PDO; -use PDOException; -use Froxlor\Froxlor; -use Froxlor\PhpHelper; use Froxlor\Api\ApiCommand; use Froxlor\Api\ResourceEntity; use Froxlor\Database\Database; +use Froxlor\Froxlor; +use Froxlor\FroxlorLogger; +use Froxlor\PhpHelper; use Froxlor\Validate\Validate; +use PDO; +use PDOException; class MysqlServer extends ApiCommand implements ResourceEntity { @@ -73,8 +74,8 @@ class MysqlServer extends ApiCommand implements ResourceEntity * optional, test connection with given credentials, default is true (yes) * * @access admin - * @throws Exception * @return string json-encoded array + * @throws Exception */ public function add() { @@ -112,7 +113,7 @@ class MysqlServer extends ApiCommand implements ResourceEntity ); if (!empty($mysql_ca)) { $options[PDO::MYSQL_ATTR_SSL_CA] = $mysql_ca; - $options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = (bool) $mysql_verifycert; + $options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = (bool)$mysql_verifycert; } $dsn = "mysql:host=" . $mysql_host . ";port=" . $mysql_port . ";"; @@ -167,6 +168,8 @@ class MysqlServer extends ApiCommand implements ResourceEntity $this->addDatabaseFromCustomerAllowedList($newdbserver); } + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] added new database server '" . $description . "' (" . $mysql_host . ")"); + return $this->response(['dbserver' => $newdbserver]); } @@ -179,16 +182,16 @@ class MysqlServer extends ApiCommand implements ResourceEntity * optional the number of the mysql server (either id or dbserver must be set) * * @access admin - * @throws Exception * @return string json-encoded array + * @throws Exception */ public function delete() { $this->validateAccess(); - $id = (int) $this->getParam('id', true, -1); + $id = (int)$this->getParam('id', true, -1); $dn_optional = $id >= 0; - $dbserver = (int) $this->getParam('dbserver', $dn_optional, -1); + $dbserver = (int)$this->getParam('dbserver', $dn_optional, -1); $dbserver = $id >= 0 ? $id : $dbserver; if ($dbserver == 0) { @@ -212,8 +215,12 @@ class MysqlServer extends ApiCommand implements ResourceEntity // when removing, remove from list of allowed_mysqlservers from any customers $this->removeDatabaseFromCustomerAllowedList($dbserver); + $description = $sql_root[$dbserver]['caption'] ?? "unknown"; + $mysql_host = $sql_root[$dbserver]['host'] ?? "unknown"; unset($sql_root[$dbserver]); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] removed database server '" . $description . "' (" . $mysql_host . ")"); + $this->generateNewUserData($sql, $sql_root); return $this->response(['true']); } @@ -287,14 +294,14 @@ class MysqlServer extends ApiCommand implements ResourceEntity * optional the number of the mysql server (either id or dbserver must be set) * * @access admin, customer - * @throws Exception * @return string json-encoded array + * @throws Exception */ public function get() { - $id = (int) $this->getParam('id', true, -1); + $id = (int)$this->getParam('id', true, -1); $dn_optional = $id >= 0; - $dbserver = (int) $this->getParam('dbserver', $dn_optional, -1); + $dbserver = (int)$this->getParam('dbserver', $dn_optional, -1); $dbserver = $id >= 0 ? $id : $dbserver; $sql_root = []; @@ -317,6 +324,7 @@ class MysqlServer extends ApiCommand implements ResourceEntity unset($sql_root[$dbserver]['password']); $sql_root[$dbserver]['id'] = $dbserver; + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] get database-server '" . $sql_root[$dbserver]['caption'] . "'"); return $this->response($sql_root[$dbserver]); } @@ -347,16 +355,16 @@ class MysqlServer extends ApiCommand implements ResourceEntity * optional, test connection with given credentials, default is true (yes) * * @access admin - * @throws Exception * @return string json-encoded array + * @throws Exception */ public function update() { $this->validateAccess(); - $id = (int) $this->getParam('id', true, -1); + $id = (int)$this->getParam('id', true, -1); $dn_optional = $id >= 0; - $dbserver = (int) $this->getParam('dbserver', $dn_optional, -1); + $dbserver = (int)$this->getParam('dbserver', $dn_optional, -1); $dbserver = $id >= 0 ? $id : $dbserver; $sql_root = []; @@ -417,7 +425,7 @@ class MysqlServer extends ApiCommand implements ResourceEntity ); if (!empty($mysql_ca)) { $options[PDO::MYSQL_ATTR_SSL_CA] = $mysql_ca; - $options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = (bool) $mysql_verifycert; + $options[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT] = (bool)$mysql_verifycert; } $dsn = "mysql:host=" . $mysql_host . ";port=" . $mysql_port . ";"; @@ -448,6 +456,8 @@ class MysqlServer extends ApiCommand implements ResourceEntity $this->addDatabaseFromCustomerAllowedList($dbserver); } + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] edited database server '" . $description . "' (" . $mysql_host . ")"); + return $this->response(['true']); } @@ -472,7 +482,7 @@ class MysqlServer extends ApiCommand implements ResourceEntity WHERE `dbserver` = :dbserver "); $result = Database::pexecute_first($result_stmt, ['dbserver' => $dbserver], true, true); - return (int) $result['num_dbs']; + return (int)$result['num_dbs']; } else { $dbserver = $this->getParam('mysql_server'); $customer_ids = $this->getAllowedCustomerIds(); diff --git a/lib/Froxlor/Api/Commands/Mysqls.php b/lib/Froxlor/Api/Commands/Mysqls.php index c5d78501..8ef6c1e7 100644 --- a/lib/Froxlor/Api/Commands/Mysqls.php +++ b/lib/Froxlor/Api/Commands/Mysqls.php @@ -199,7 +199,7 @@ class Mysqls extends ApiCommand implements ResourceEntity $this->mailer()->clearAddresses(); } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] added mysql-database '" . $username . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] added mysql-database '" . $username . "'"); $result = $this->apiCall('Mysqls.get', [ 'dbname' => $username, @@ -299,7 +299,7 @@ class Mysqls extends ApiCommand implements ResourceEntity $mbdata = $mbdata_stmt->fetch(PDO::FETCH_ASSOC); Database::needRoot(false); $result['size'] = $mbdata['MB'] ?? 0; - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get database '" . $result['databasename'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get database '" . $result['databasename'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "dbname '" . $dbname . "'"); @@ -388,7 +388,7 @@ class Mysqls extends ApiCommand implements ResourceEntity ]; Database::pexecute($stmt, $params, true, true); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] updated mysql-database '" . $result['databasename'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] updated mysql-database '" . $result['databasename'] . "'"); $result = $this->apiCall('Mysqls.get', [ 'dbname' => $result['databasename'] ]); diff --git a/lib/Froxlor/Api/Commands/PhpSettings.php b/lib/Froxlor/Api/Commands/PhpSettings.php index cb5c396b..588c04a6 100644 --- a/lib/Froxlor/Api/Commands/PhpSettings.php +++ b/lib/Froxlor/Api/Commands/PhpSettings.php @@ -67,7 +67,7 @@ class PhpSettings extends ApiCommand implements ResourceEntity public function listing() { if ($this->isAdmin()) { - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] list php-configs"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] list php-configs"); $with_subdomains = $this->getBoolParam('with_subdomains', true, false); $query_fields = []; @@ -392,7 +392,7 @@ class PhpSettings extends ApiCommand implements ResourceEntity $ins_data['id'] = Database::lastInsertId(); Cronjob::inserttask(TaskId::REBUILD_VHOST); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] php setting with description '" . $description . "' has been created by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] php setting with description '" . $description . "' has been created by '" . $this->getUserDetail('loginname') . "'"); $result = $this->apiCall('PhpSettings.get', [ 'id' => $ins_data['id'] @@ -629,7 +629,7 @@ class PhpSettings extends ApiCommand implements ResourceEntity Database::pexecute($upd_stmt, $upd_data, true, true); Cronjob::inserttask(TaskId::REBUILD_VHOST); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] php setting with description '" . $description . "' has been updated by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_NOTICE, "[API] php setting with description '" . $description . "' has been updated by '" . $this->getUserDetail('loginname') . "'"); $result = $this->apiCall('PhpSettings.get', [ 'id' => $id @@ -686,7 +686,7 @@ class PhpSettings extends ApiCommand implements ResourceEntity ], true, true); Cronjob::inserttask(TaskId::REBUILD_VHOST); - $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_INFO, "[API] php setting '" . $result['description'] . "' has been deleted by '" . $this->getUserDetail('loginname') . "'"); + $this->logger()->logAction(FroxlorLogger::ADM_ACTION, LOG_WARNING, "[API] php setting '" . $result['description'] . "' has been deleted by '" . $this->getUserDetail('loginname') . "'"); return $this->response($result); } throw new Exception("Not allowed to execute given command.", 403); diff --git a/lib/Froxlor/Api/Commands/SubDomains.php b/lib/Froxlor/Api/Commands/SubDomains.php index be29ed3e..fdc6e9c8 100644 --- a/lib/Froxlor/Api/Commands/SubDomains.php +++ b/lib/Froxlor/Api/Commands/SubDomains.php @@ -486,7 +486,7 @@ class SubDomains extends ApiCommand implements ResourceEntity $result['ipsandports'] = $this->getIpsForDomain($result['id']); } $result['domain_hascert'] = $this->getHasCertValueForDomain((int)$result['id'], (int)$result['parentdomainid']); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] get subdomain '" . $result['domain'] . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] get subdomain '" . $result['domain'] . "'"); return $this->response($result); } $key = ($id > 0 ? "id #" . $id : "domainname '" . $domainname . "'"); @@ -856,7 +856,7 @@ class SubDomains extends ApiCommand implements ResourceEntity Cronjob::inserttask(TaskId::REBUILD_VHOST); Cronjob::inserttask(TaskId::REBUILD_DNS); $idna_convert = new IdnaWrapper(); - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] edited domain '" . $idna_convert->decode($result['domain']) . "'"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] edited domain '" . $idna_convert->decode($result['domain']) . "'"); } $result = $this->apiCall('SubDomains.get', [ 'id' => $id diff --git a/lib/Froxlor/Api/Commands/SysLog.php b/lib/Froxlor/Api/Commands/SysLog.php index c3686a54..9236d577 100644 --- a/lib/Froxlor/Api/Commands/SysLog.php +++ b/lib/Froxlor/Api/Commands/SysLog.php @@ -92,7 +92,7 @@ class SysLog extends ApiCommand implements ResourceEntity while ($row = $result_stmt->fetch(PDO::FETCH_ASSOC)) { $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list log-entries"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list log-entries"); return $this->response([ 'count' => count($result), 'list' => $result diff --git a/lib/Froxlor/Api/Commands/Traffic.php b/lib/Froxlor/Api/Commands/Traffic.php index dc657133..1f8692b9 100644 --- a/lib/Froxlor/Api/Commands/Traffic.php +++ b/lib/Froxlor/Api/Commands/Traffic.php @@ -166,7 +166,7 @@ class Traffic extends ApiCommand implements ResourceEntity $row['mail'] *= 1024; $result[] = $row; } - $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_NOTICE, "[API] list traffic"); + $this->logger()->logAction($this->isAdmin() ? FroxlorLogger::ADM_ACTION : FroxlorLogger::USR_ACTION, LOG_INFO, "[API] list traffic"); return $this->response([ 'count' => count($result), 'list' => $result diff --git a/templates/Froxlor/login/fpwd.html.twig b/templates/Froxlor/login/fpwd.html.twig index e20b3ee0..6832c5ab 100644 --- a/templates/Froxlor/login/fpwd.html.twig +++ b/templates/Froxlor/login/fpwd.html.twig @@ -3,7 +3,7 @@ {% block content %}