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] Allow actions in quarantine modal, fixes #1991 [Web] Fixes for Source Sans Pro font [Rspamd] Add global rcpt blacklist and whitelist [Compose] New Rspamd image

d445d7d2
root <[email protected]> 8 years ago
data/conf/rspamd/custom/global_from_blacklist.map |   2 +-
 data/conf/rspamd/custom/global_from_whitelist.map |   2 +-
 data/conf/rspamd/custom/global_rcpt_blacklist.map |   1 +
 data/conf/rspamd/custom/global_rcpt_whitelist.map |   1 +
 data/conf/rspamd/local.d/multimap.conf            |  16 ++++++++++++++++
 data/web/css/mailcow.css                          |   4 ----
 data/web/fonts/SourceSansPro-Bold.woff2           | Bin 13892 -> 76972 bytes
 data/web/fonts/SourceSansPro-BoldIt.woff2         | Bin 13716 -> 44536 bytes
 data/web/fonts/SourceSansPro-Light.woff2          | Bin 14308 -> 76560 bytes
 data/web/fonts/SourceSansPro-Regular.woff2        | Bin 14308 -> 77476 bytes
 data/web/js/quarantine.js                         |   6 ++++++
 data/web/modals/quarantine.php                    |  11 +++++++++++
 docker-compose.yml                                |   2 +-
 13 files changed, 38 insertions(+), 7 deletions(-)
 create mode 100644 data/conf/rspamd/custom/global_rcpt_blacklist.map
 create mode 100644 data/conf/rspamd/custom/global_rcpt_whitelist.map

Diff

diff --git a/data/conf/rspamd/custom/global_from_blacklist.map b/data/conf/rspamd/custom/global_from_blacklist.map
index dd04f45c..926c6b32 100644
--- a/data/conf/rspamd/custom/global_from_blacklist.map
+++ b/data/conf/rspamd/custom/global_from_blacklist.map
@@ -1 +1 @@
-# /.*@example.com/i'
+# /.*@example.com/i
diff --git a/data/conf/rspamd/custom/global_from_whitelist.map b/data/conf/rspamd/custom/global_from_whitelist.map
index dd04f45c..926c6b32 100644
--- a/data/conf/rspamd/custom/global_from_whitelist.map
+++ b/data/conf/rspamd/custom/global_from_whitelist.map
@@ -1 +1 @@
-# /.*@example.com/i'
+# /.*@example.com/i
diff --git a/data/conf/rspamd/custom/global_rcpt_blacklist.map b/data/conf/rspamd/custom/global_rcpt_blacklist.map
new file mode 100644
index 00000000..926c6b32
--- /dev/null
+++ b/data/conf/rspamd/custom/global_rcpt_blacklist.map
@@ -0,0 +1 @@
+# /.*@example.com/i
diff --git a/data/conf/rspamd/custom/global_rcpt_whitelist.map b/data/conf/rspamd/custom/global_rcpt_whitelist.map
new file mode 100644
index 00000000..926c6b32
--- /dev/null
+++ b/data/conf/rspamd/custom/global_rcpt_whitelist.map
@@ -0,0 +1 @@
+# /.*@example.com/i
diff --git a/data/conf/rspamd/local.d/multimap.conf b/data/conf/rspamd/local.d/multimap.conf
index 40cbfda7..47eca4ff 100644
--- a/data/conf/rspamd/local.d/multimap.conf
+++ b/data/conf/rspamd/local.d/multimap.conf
@@ -49,3 +49,19 @@ GLOBAL_FROM_BL {
   prefilter = true;
   action = "reject";
 }
+
+GLOBAL_RCPT_WL {
+  type = "rcpt";
+  map = "$LOCAL_CONFDIR/custom/global_rcpt_whitelist.map";
+  regexp = true;
+  prefilter = true;
+  action = "accept";
+}
+
+GLOBAL_RCPT_BL {
+  type = "rcpt";
+  map = "$LOCAL_CONFDIR/custom/global_rcpt_blacklist.map";
+  regexp = true;
+  prefilter = true;
+  action = "reject";
+}
diff --git a/data/web/css/mailcow.css b/data/web/css/mailcow.css
index 04d1b874..ee6eb2a5 100644
--- a/data/web/css/mailcow.css
+++ b/data/web/css/mailcow.css
@@ -3,28 +3,24 @@
   font-style: normal;
   font-weight: 300;
   src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url('../fonts/SourceSansPro-Light.woff2') format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
 }
 @font-face {
   font-family: 'Source Sans Pro';
   font-style: normal;
   font-weight: 400;
   src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url('../fonts/SourceSansPro-Regular.woff2') format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
 }
 @font-face {
   font-family: 'Source Sans Pro';
   font-style: normal;
   font-weight: 700;
   src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url('../fonts/SourceSansPro-Bold.woff2') format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
 }
 @font-face {
   font-family: 'Source Sans Pro';
   font-style: italic;
   font-weight: 700;
   src: local('Source Sans Pro Bold Italic'), local('SourceSansPro-BoldIt'), url('../fonts/SourceSansPro-BoldIt.woff2') format('woff2');
-  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215;
 }
 #maxmsgsize { min-width: 80px; }
 #slider1 .slider-selection {
diff --git a/data/web/fonts/SourceSansPro-Bold.woff2 b/data/web/fonts/SourceSansPro-Bold.woff2
index 89bfd796..e6f92a55 100644
Binary files a/data/web/fonts/SourceSansPro-Bold.woff2 and b/data/web/fonts/SourceSansPro-Bold.woff2 differ
diff --git a/data/web/fonts/SourceSansPro-BoldIt.woff2 b/data/web/fonts/SourceSansPro-BoldIt.woff2
index 83d5b491..50c117d9 100644
Binary files a/data/web/fonts/SourceSansPro-BoldIt.woff2 and b/data/web/fonts/SourceSansPro-BoldIt.woff2 differ
diff --git a/data/web/fonts/SourceSansPro-Light.woff2 b/data/web/fonts/SourceSansPro-Light.woff2
index 75ec2c04..9b18cc1a 100644
Binary files a/data/web/fonts/SourceSansPro-Light.woff2 and b/data/web/fonts/SourceSansPro-Light.woff2 differ
diff --git a/data/web/fonts/SourceSansPro-Regular.woff2 b/data/web/fonts/SourceSansPro-Regular.woff2
index 6dda30cd..e49739d4 100644
Binary files a/data/web/fonts/SourceSansPro-Regular.woff2 and b/data/web/fonts/SourceSansPro-Regular.woff2 differ
diff --git a/data/web/js/quarantine.js b/data/web/js/quarantine.js
index f8438099..9f655564 100644
--- a/data/web/js/quarantine.js
+++ b/data/web/js/quarantine.js
@@ -60,6 +60,12 @@ jQuery(function($){
             $( "#qid_error" ).text(data.error);
             $( "#qid_error" ).show();
           }
+          $( "li" ).each(function( index ) {
+            console.log( index + ": " + $( this ).text() );
+          });
+          $('[data-id="qitems_single"]').each(function( index ) {
+            $(this).attr("data-item", qitem);
+          });
           $('#qid_detail_subj').text(data.subject);
           $('#qid_detail_text').text(data.text_plain);
           $('#qid_detail_text_from_html').text(data.text_html);
diff --git a/data/web/modals/quarantine.php b/data/web/modals/quarantine.php
index 41a63413..30a0d3b8 100644
--- a/data/web/modals/quarantine.php
+++ b/data/web/modals/quarantine.php
@@ -12,6 +12,7 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
         <h3 class="modal-title"><span class="glyphicon glyphicon-info"></span> <?=$lang['quarantine']['qitem'];?></h3>
       </div>
       <div class="modal-body">
+        <?=var_dump($_POST);?>
         <div id="qid_error" style="display:none" class="alert alert-danger"></div>
         <div class="form-group">
           <label for="qid_detail_subj"><h4><?=$lang['quarantine']['subj'];?>:</h4></label>
@@ -29,6 +30,16 @@ if (!isset($_SESSION['mailcow_cc_role'])) {
           <label for="qid_detail_atts"><h4><?=$lang['quarantine']['atts'];?>:</h4></label>
           <div id="qid_detail_atts">-</div>
         </div>
+        <div class="btn-group" data-acl="<?=$_SESSION['acl']['quarantine'];?>">
+          <a class="btn btn-sm btn-default dropdown-toggle" data-toggle="dropdown" href="#"><?=$lang['quarantine']['quick_actions'];?> <span class="caret"></span></a>
+          <ul class="dropdown-menu">
+            <li><a data-action="edit_selected" data-id="qitems_single" data-item="" data-api-url='edit/qitem' data-api-attr='{"action":"release"}' href="#"><?=$lang['quarantine']['release'];?></a></li>
+            <li role="separator" class="divider"></li>
+            <li><a data-action="edit_selected" data-id="qitems_single" data-item="" data-api-url='edit/qitem' data-api-attr='{"action":"learnspam"}' href="#"><?=$lang['quarantine']['learn_spam_delete'];?></a></li>
+            <li role="separator" class="divider"></li>
+            <li><a data-action="delete_selected" data-id="qitems_single" data-item="" data-api-url='delete/qitem' href="#"><?=$lang['quarantine']['remove'];?></a></li>
+          </ul>
+        </div>
       </div>
     </div>
   </div>
diff --git a/docker-compose.yml b/docker-compose.yml
index 0d0e610a..20c123cb 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -72,7 +72,7 @@ services:
             - clamd
 
     rspamd-mailcow:
-      image: mailcow/rspamd:1.30
+      image: mailcow/rspamd:1.31
       build: ./data/Dockerfiles/rspamd
       stop_grace_period: 30s
       depends_on: