public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[Web] Fix init db on fresh installations
a5488d4b
data/web/inc/functions.inc.php | 28 ++++++++++++--------
data/web/inc/init_db.inc.php | 52 +++++++++++++++++++-------------------
data/web/inc/prerequisites.inc.php | 1 +
3 files changed, 44 insertions(+), 37 deletions(-)
Diff
diff --git a/data/web/inc/functions.inc.php b/data/web/inc/functions.inc.php
index 29cb10d1..6804fec0 100644
--- a/data/web/inc/functions.inc.php
+++ b/data/web/inc/functions.inc.php
@@ -64,17 +64,23 @@ function logger($_data = false) {
$user = 'unauthenticated';
$role = 'unauthenticated';
}
- $stmt = $pdo->prepare("INSERT INTO `logs` (`type`, `task`, `msg`, `call`, `user`, `role`, `remote`, `time`) VALUES
- (:type, :task, :msg, :call, :user, :role, :remote, UNIX_TIMESTAMP())");
- $stmt->execute(array(
- ':type' => $type,
- ':task' => $task,
- ':call' => $call,
- ':msg' => $msg,
- ':user' => $user,
- ':role' => $role,
- ':remote' => get_remote_ip()
- ));
+ // We cannot log when logs is missing...
+ try {
+ $stmt = $pdo->prepare("INSERT INTO `logs` (`type`, `task`, `msg`, `call`, `user`, `role`, `remote`, `time`) VALUES
+ (:type, :task, :msg, :call, :user, :role, :remote, UNIX_TIMESTAMP())");
+ $stmt->execute(array(
+ ':type' => $type,
+ ':task' => $task,
+ ':call' => $call,
+ ':msg' => $msg,
+ ':user' => $user,
+ ':role' => $role,
+ ':remote' => get_remote_ip()
+ ));
+ }
+ catch (Exception $e) {
+ // Do nothing
+ }
}
}
else {
diff --git a/data/web/inc/init_db.inc.php b/data/web/inc/init_db.inc.php
index d56de607..58566ab7 100644
--- a/data/web/inc/init_db.inc.php
+++ b/data/web/inc/init_db.inc.php
@@ -297,32 +297,6 @@ function init_db_schema() {
),
"attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"
),
- "da_acl" => array(
- "cols" => array(
- "username" => "VARCHAR(255) NOT NULL",
- "syncjobs" => "TINYINT(1) NOT NULL DEFAULT '1'",
- "quarantine" => "TINYINT(1) NOT NULL DEFAULT '1'",
- "login_as" => "TINYINT(1) NOT NULL DEFAULT '1'",
- "bcc_maps" => "TINYINT(1) NOT NULL DEFAULT '1'",
- "filters" => "TINYINT(1) NOT NULL DEFAULT '1'",
- "ratelimit" => "TINYINT(1) NOT NULL DEFAULT '1'",
- "spam_policy" => "TINYINT(1) NOT NULL DEFAULT '1'",
- ),
- "keys" => array(
- "primary" => array(
- "" => array("username")
- ),
- "fkey" => array(
- "fk_domain_admin_acl" => array(
- "col" => "username",
- "ref" => "domain_admins.username",
- "delete" => "CASCADE",
- "update" => "NO ACTION"
- )
- )
- ),
- "attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"
- ),
"alias_domain" => array(
"cols" => array(
"alias_domain" => "VARCHAR(255) NOT NULL",
@@ -440,6 +414,32 @@ function init_db_schema() {
),
"attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"
),
+ "da_acl" => array(
+ "cols" => array(
+ "username" => "VARCHAR(255) NOT NULL",
+ "syncjobs" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ "quarantine" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ "login_as" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ "bcc_maps" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ "filters" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ "ratelimit" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ "spam_policy" => "TINYINT(1) NOT NULL DEFAULT '1'",
+ ),
+ "keys" => array(
+ "primary" => array(
+ "" => array("username")
+ ),
+ "fkey" => array(
+ "fk_domain_admin_acl" => array(
+ "col" => "username",
+ "ref" => "domain_admins.username",
+ "delete" => "CASCADE",
+ "update" => "NO ACTION"
+ )
+ )
+ ),
+ "attr" => "ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC"
+ ),
"imapsync" => array(
"cols" => array(
"id" => "INT NOT NULL AUTO_INCREMENT",
diff --git a/data/web/inc/prerequisites.inc.php b/data/web/inc/prerequisites.inc.php
index c2626d33..aedda083 100644
--- a/data/web/inc/prerequisites.inc.php
+++ b/data/web/inc/prerequisites.inc.php
@@ -52,6 +52,7 @@ catch (PDOException $e) {
exit;
}
function pdo_exception_handler($e) {
+ print_r($e);
if ($e instanceof PDOException) {
$_SESSION['return'][] = array(
'type' => 'danger',