From c9e2ab488e047295eae76bdd0cb2d1807c191ee5 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 21 Jan 2016 05:05:01 -0500
Subject: [PATCH] Enigma: Fix handling of encrypted + signed messages (#1490632)

---
 plugins/enigma/lib/enigma_ui.php |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/plugins/enigma/lib/enigma_ui.php b/plugins/enigma/lib/enigma_ui.php
index c12ac41..e32dee2 100644
--- a/plugins/enigma/lib/enigma_ui.php
+++ b/plugins/enigma/lib/enigma_ui.php
@@ -756,15 +756,21 @@
             return $p;
         }
 
-        $engine  = $this->enigma->engine;
-        $part_id = $p['part']->mime_id;
+        $engine    = $this->enigma->engine;
+        $part_id   = $p['part']->mime_id;
+        $parent_id = preg_replace('/\.[0-9]+$/', '', $part_id);
 
         // Decryption status
-        if (isset($engine->decryptions[$part_id])) {
+        if (($status = $engine->decryptions[$part_id])
+            || ($parent_id !== '' && ($status = $engine->decryptions[$parent_id]))
+        ) {
             $attach_scripts = true;
 
-            // get decryption status
-            $status = $engine->decryptions[$part_id];
+            // show the message only once
+            unset($engine->decryptions[$part_id]);
+            if ($parent_id !== '') {
+                unset($engine->decryptions[$parent_id]);
+            }
 
             // display status info
             $attrib['id'] = 'enigma-message';

--
Gitblit v1.9.1