NobGit
public nobgit read

NobMail

Based on mailcow: dockerized

Languages

Repository composition by tracked source files.

PHP
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] Small adjustments to presets

8003f3b4
andryyy <[email protected]> 7 years ago
data/web/css/build/0081-custom-mailcow.css         |  1 +
 data/web/inc/functions.presets.inc.php             | 68 ++++++++--------------
 data/web/inc/presets/admin-rspamd/preset_1.yml     |  7 ---
 data/web/inc/presets/rspamd/preset_1.yml           |  7 +++
 .../presets/{admin-rspamd => rspamd}/preset_2.yml  |  0
 .../presets/{mailbox-sieve => sieve}/sieve_1.yml   |  0
 .../presets/{mailbox-sieve => sieve}/sieve_2.yml   |  0
 data/web/js/presets/rspamd.js                      |  2 +-
 data/web/js/presets/sieveMailbox.js                |  2 +-
 data/web/json_api.php                              | 32 +++++-----
 10 files changed, 53 insertions(+), 66 deletions(-)
 create mode 100644 data/web/css/build/0081-custom-mailcow.css
 delete mode 100644 data/web/inc/presets/admin-rspamd/preset_1.yml
 create mode 100644 data/web/inc/presets/rspamd/preset_1.yml
 rename data/web/inc/presets/{admin-rspamd => rspamd}/preset_2.yml (100%)
 rename data/web/inc/presets/{mailbox-sieve => sieve}/sieve_1.yml (100%)
 rename data/web/inc/presets/{mailbox-sieve => sieve}/sieve_2.yml (100%)

Diff

diff --git a/data/web/css/build/0081-custom-mailcow.css b/data/web/css/build/0081-custom-mailcow.css
new file mode 100644
index 00000000..02bcadeb
--- /dev/null
+++ b/data/web/css/build/0081-custom-mailcow.css
@@ -0,0 +1 @@
+/* Autogenerated by mailcow */
diff --git a/data/web/inc/functions.presets.inc.php b/data/web/inc/functions.presets.inc.php
index c0e472a7..b85c3e03 100644
--- a/data/web/inc/functions.presets.inc.php
+++ b/data/web/inc/functions.presets.inc.php
@@ -1,56 +1,38 @@
 <?php
-function presets($_action, $_kind, $_object)
-{
-  if ($_SESSION['mailcow_cc_role'] !== 'admin') {
-    $_SESSION['return'][] = [
-      'type' => 'danger',
-      'log' => [__FUNCTION__, $_action, $_data_log],
-      'msg' => 'access_denied',
-    ];
-
-    return false;
-  }
-
+function presets($_action, $_kind) {
   global $lang;
-  if ($_action === 'get') {
-    $kind = strtolower(trim($_kind));
-    $langSection = 'admin';
-    $presetsPath = __DIR__ . '/presets/' . $kind;
-
-    if (!in_array($kind, ['admin-rspamd', 'mailbox-sieve'], true)) {
-      return [];
-    }
-
-    if ($kind === 'mailbox-sieve') {
-      $langSection = 'mailbox';
-    }
-
-    if ($_object !== 'all') {
-      return getPresetFromFilePath($presetsPath . '/' . $_object . '.yml', $langSection);
-    }
-
-    $presets = [];
-    foreach (glob($presetsPath . '/*.yml') as $filename) {
-      $presets[] = getPresetFromFilePath($filename, $langSection);
-    }
-
-    return $presets;
+  switch ($_action) {
+    case 'get':
+      if ($_SESSION['mailcow_cc_role'] != "admin") {
+        return false;
+      }
+      $presets = array();
+      $kind = strtolower(trim($_kind));
+      $lang_base = 'admin';
+      $presets_path = __DIR__ . '/presets/' . $kind;
+      if (!in_array($kind, ['rspamd', 'sieve'], true)) {
+        return array();
+      }
+      if ($kind === 'sieve') {
+        $lang_base = 'mailbox';
+      }
+      foreach (glob($presets_path . '/*.yml') as $filename) {
+        $presets[] = getPresetFromFilePath($filename, $lang_base);
+      }
+      return $presets;
+    break;
   }
-
-  return [];
+  return array();
 }
-
-function getPresetFromFilePath($filePath, $langSection)
-{
+function getPresetFromFilePath($filePath, $lang_base) {
   global $lang;
   $preset = Spyc::YAMLLoad($filePath);
   $preset = ['name' => basename($filePath, '.yml')] + $preset;
-
   /* get translated headlines */
   if (isset($preset['headline']) && strpos($preset['headline'], 'lang.') === 0) {
     $langTextName = trim(substr($preset['headline'], 5));
-    if (isset($lang[$langSection][$langTextName])) {
-      $preset['headline'] = $lang[$langSection][$langTextName];
+    if (isset($lang[$lang_base][$langTextName])) {
+      $preset['headline'] = $lang[$lang_base][$langTextName];
     }
   }
   return $preset;
diff --git a/data/web/inc/presets/admin-rspamd/preset_1.yml b/data/web/inc/presets/admin-rspamd/preset_1.yml
deleted file mode 100644
index f36b0547..00000000
--- a/data/web/inc/presets/admin-rspamd/preset_1.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-headline: lang.rsettings_preset_1
-content: |
-  priority = 10;
-  authenticated = yes;
-  apply "default" {
-   symbols_enabled = ["DKIM_SIGNED", "RATELIMITED", "RATELIMIT_UPDATE", "RATELIMIT_CHECK", "DYN_RL_CHECK", "HISTORY_SAVE", "MILTER_HEADERS", "ARC_SIGNED"];
-  }
diff --git a/data/web/inc/presets/rspamd/preset_1.yml b/data/web/inc/presets/rspamd/preset_1.yml
new file mode 100644
index 00000000..acbe352a
--- /dev/null
+++ b/data/web/inc/presets/rspamd/preset_1.yml
@@ -0,0 +1,7 @@
+headline: lang.rsettings_preset_1
+content: |
+  priority = 10;
+  authenticated = yes;
+  apply "default" {
+    symbols_enabled = ["DKIM_SIGNED", "RATELIMITED", "RATELIMIT_UPDATE", "RATELIMIT_CHECK", "DYN_RL_CHECK", "HISTORY_SAVE", "MILTER_HEADERS", "ARC_SIGNED"];
+  }
diff --git a/data/web/inc/presets/admin-rspamd/preset_2.yml b/data/web/inc/presets/rspamd/preset_2.yml
similarity index 100%
rename from data/web/inc/presets/admin-rspamd/preset_2.yml
rename to data/web/inc/presets/rspamd/preset_2.yml
diff --git a/data/web/inc/presets/mailbox-sieve/sieve_1.yml b/data/web/inc/presets/sieve/sieve_1.yml
similarity index 100%
rename from data/web/inc/presets/mailbox-sieve/sieve_1.yml
rename to data/web/inc/presets/sieve/sieve_1.yml
diff --git a/data/web/inc/presets/mailbox-sieve/sieve_2.yml b/data/web/inc/presets/sieve/sieve_2.yml
similarity index 100%
rename from data/web/inc/presets/mailbox-sieve/sieve_2.yml
rename to data/web/inc/presets/sieve/sieve_2.yml
diff --git a/data/web/js/presets/rspamd.js b/data/web/js/presets/rspamd.js
index 6981418c..f6d7ad3c 100644
--- a/data/web/js/presets/rspamd.js
+++ b/data/web/js/presets/rspamd.js
@@ -3,7 +3,7 @@ var rspamd_presetsElem = document.getElementById("rspamd_presets");
 if (rspamd_presetsElem) {
   $.ajax({
     dataType: 'json',
-    url: '/api/v1/get/presets-admin-rspamd/all',
+    url: '/api/v1/get/presets/rspamd',
     jsonp: false,
     complete: function (data) {
       if (data.responseText !== '{}') {
diff --git a/data/web/js/presets/sieveMailbox.js b/data/web/js/presets/sieveMailbox.js
index 5ba9fb32..5b15de06 100644
--- a/data/web/js/presets/sieveMailbox.js
+++ b/data/web/js/presets/sieveMailbox.js
@@ -3,7 +3,7 @@ var sieve_presetsElem = document.getElementById("sieve_presets");
 if (sieve_presetsElem) {
   $.ajax({
     dataType: 'json',
-    url: '/api/v1/get/presets-mailbox-sieve/all',
+    url: '/api/v1/get/presets/sieve',
     jsonp: false,
     complete: function (data) {
       if (data.responseText !== '{}') {
diff --git a/data/web/json_api.php b/data/web/json_api.php
index dcaf7f0d..82409d81 100644
--- a/data/web/json_api.php
+++ b/data/web/json_api.php
@@ -1071,21 +1071,25 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
                   break;
             }
           break;
-          case "presets-admin-rspamd":
-            process_get_return(presets('get', 'admin-rspamd', $object));
-            break;
-          case "presets-mailbox-sieve":
-            process_get_return(presets('get', 'mailbox-sieve', $object));
-            break;
+          case "presets":
+            switch ($object) {
+              case "rspamd":
+                process_get_return(presets('get', 'rspamd'));
+              case "sieve":
+              break;
+                process_get_return(presets('get', 'sieve'));
+              break;
+            }
           break;
-          // return no route found if no case is matched
-          default:
-            http_response_code(404);
-            echo json_encode(array(
-              'type' => 'error',
-              'msg' => 'route not found'
-            ));
-            exit();
+        break;
+        // return no route found if no case is matched
+        default:
+          http_response_code(404);
+          echo json_encode(array(
+            'type' => 'error',
+            'msg' => 'route not found'
+          ));
+          exit();
         }
       break;
       case "delete":