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';
+?>