git subrepo clone https://github.com/mailcow/mailcow-dockerized.git mailcow/src/mailcow-dockerized

subrepo: subdir:   "mailcow/src/mailcow-dockerized"
  merged:   "a832becb"
upstream: origin:   "https://github.com/mailcow/mailcow-dockerized.git"
  branch:   "master"
  commit:   "a832becb"
git-subrepo: version:  "0.4.3"
  origin:   "???"
  commit:   "???"
Change-Id: If5be2d621a211e164c9b6577adaa7884449f16b5
diff --git a/mailcow/src/mailcow-dockerized/data/web/qhandler.php b/mailcow/src/mailcow-dockerized/data/web/qhandler.php
new file mode 100644
index 0000000..f4ce9f0
--- /dev/null
+++ b/mailcow/src/mailcow-dockerized/data/web/qhandler.php
@@ -0,0 +1,109 @@
+<?php

+session_start();

+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';

+if (quarantine('hash_details', $_GET['hash']) === false && !isset($_POST)) {

+  header('Location: /admin');

+  exit();

+}

+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';

+if (preg_match("/^([a-f0-9]{64})$/", $_POST['quick_release']) || preg_match("/^([a-f0-9]{64})$/", $_POST['quick_delete'])) {

+?>

+<div class="container">

+  <div class="row">

+    <div class="col-md-offset-2 col-md-8">

+      <div class="panel panel-default">

+        <div class="panel-heading"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <?= $lang['header']['quarantine']; ?></div>

+        <div class="panel-body">

+          <legend><?=(isset($_POST['quick_release'])) ? $lang['quarantine']['release'] : $lang['quarantine']['remove'];?></legend>

+            <p><?=$lang['quarantine']['qhandler_success'];?></p>

+        </div>

+      </div>

+    </div>

+  </div> <!-- /row -->

+</div> <!-- /container -->

+<?php

+}

+elseif (in_array($_GET['action'], array('release', 'delete'))) {

+  if (preg_match("/^([a-f0-9]{64})$/", $_GET['hash'])) {

+?>

+<div class="container">

+  <div class="row">

+    <div class="col-md-offset-2 col-md-8">

+      <div class="panel panel-default">

+        <div class="panel-heading"><span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span> <?= $lang['header']['quarantine']; ?></div>

+        <div class="panel-body">

+<?php

+if ($_GET['action'] == "release") {

+?>

+          <legend id="qtitle" data-hash="<?=$_GET['hash'];?>"><?=$lang['quarantine']['release'];?></legend>

+<?php

+}

+elseif ($_GET['action'] == "delete") {

+?>

+          <legend id="qtitle" data-hash="<?=$_GET['hash'];?>"><?=$lang['quarantine']['remove'];?></legend>

+<?php

+}

+?>

+            <div id="qid_error" style="display:none" class="alert alert-danger"></div>

+            <div class="form-group">

+              <label for="qid_detail_symbols"><h4><?=$lang['quarantine']['rspamd_result'];?>:</h4></label>

+              <p><?=$lang['quarantine']['spam_score'];?>: <span id="qid_detail_score"></span></p>

+              <p id="qid_detail_symbols"></p>

+            </div>

+            <div class="form-group">

+              <label for="qid_detail_subj"><h4><?=$lang['quarantine']['subj'];?>:</h4></label>

+              <p id="qid_detail_subj"></p>

+            </div>

+            <div class="form-group">

+              <label for="qid_detail_hfrom"><h4><?=$lang['quarantine']['sender_header'];?>:</h4></label>

+              <p><span class="mail-address-item" id="qid_detail_hfrom"></span></p>

+            </div>

+            <div class="form-group">

+              <label for="qid_detail_efrom"><h4><?=$lang['quarantine']['sender'];?>:</h4></label>

+              <p><span class="mail-address-item" id="qid_detail_efrom"></span></p>

+            </div>

+            <div class="form-group">

+              <label for="qid_detail_recipients"><h4><?=$lang['quarantine']['recipients'];?>:</h4></label>

+              <p id="qid_detail_recipients"></p>

+            </div>

+            <div class="form-group">

+              <label for="qid_detail_fuzzy"><h4>Fuzzy Hashes:</h4></label>

+              <p id="qid_detail_fuzzy"></p>

+            </div>

+            <div id="qactions">

+              <form method="post" autofill="off">

+                <div class="form-group">

+<?php

+if ($_GET['action'] == "release") {

+?>

+                  <button type="submit" class="btn btn-success" name="quick_release" value="<?=$_GET['hash'];?>"><?= $lang['quarantine']['confirm']; ?></button>

+<?php

+}

+elseif ($_GET['action'] == "delete") {

+?>

+                  <button type="submit" class="btn btn-success" name="quick_delete" value="<?=$_GET['hash'];?>"><?= $lang['quarantine']['confirm']; ?></button>

+<?php

+}

+?>

+                </div>

+              </form>

+            </div>

+        </div>

+      </div>

+    </div>

+  </div> <!-- /row -->

+</div> <!-- /container -->

+<?php

+  }

+}

+?>

+<script type='text/javascript'>

+<?php

+$lang_quarantine = json_encode($lang['quarantine']);

+echo "var lang = ". $lang_quarantine . ";\n";

+?>

+</script>

+<?php

+$js_minifier->add('/web/js/site/qhandler.js');

+require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';

+?>