Give back the message object to those who want it
[squirrelmail.git] / plugins / squirrelspell / modules / crypto.mod
index 4efc9002ec9fe76f3763e9447b96827fd9d3bf9f..8aa6b95206de73b033ba0221af7336b27b03458f 100644 (file)
@@ -1,45 +1,92 @@
 <?php
 
-   /**
-    **  crypto.mod.php -- Squirrelspell module
-    **
-    **  Copyright (c) 1999-2002 The SquirrelMail development team
-    **  Licensed under the GNU GPL. For full terms see the file COPYING.
-    **
-    **   This module handles the encryption/decryption of the user dictionary
-    **   if the user so chooses from the options page.
-    **
-    **  $Id$
-    **/
-
-    // Declaring globals for E_ALL
-    global $action, $SQSPELL_CRYPTO;
-    switch ($action){
-     case 'encrypt':
-      // Let's encrypt the file.
-      $words=sqspell_getWords();
-      // flip the flag.
-      $SQSPELL_CRYPTO=true;
-      sqspell_writeWords($words);
-      $msg='<p>' .
-           _("Your personal dictionary has been <strong>encrypted</strong> and is now stored in an <strong>encrypted format</strong>.").
-           '</p>';
-     break;
-    
-     case 'decrypt':
-      // Decrypt the file and save plain text.
-      $words=sqspell_getWords();
-      // flip the flag.
-      $SQSPELL_CRYPTO=false;
-      sqspell_writeWords($words);
-      $msg='<p>' . 
-           _("Your personal dictionary has been <strong>decrypted</strong> and is now stored as <strong>clear text</strong>.") . '</p>';
-     break;
-     
-     case "":
-      // Wait, this shouldn't happen! :)
-      $msg = "<p>No action requested.</p>";
-     break;
-    }
-     sqspell_makePage( _("Personal Dictionary Crypto Settings"), null, $msg);
-?>
+/**
+ * crypto.mod
+ *
+ * Squirrelspell module
+ *
+ * This module handles the encryption/decryption of the user dictionary
+ * if the user so chooses from the options page.
+ *
+ * @author Konstantin Riabitsev <icon at duke.edu>
+ * @copyright 1999-2018 The SquirrelMail Project Team
+ * @license http://opensource.org/licenses/gpl-license.php GNU Public License
+ * @version $Id$
+ * @package plugins
+ * @subpackage squirrelspell
+ */
+
+/**
+ * Declaring globals for E_ALL
+ */
+global $SQSPELL_CRYPTO;
+
+$langs=sqspell_getSettings();
+
+if (! sqgetGlobalVar('encaction', $crypt_action, SQ_POST)) {
+    $crypt_action = 'noaction';
+}
+
+switch ($crypt_action){
+    case 'encrypt':
+        $SQSPELL_CRYPTO_ORIG=$SQSPELL_CRYPTO;
+
+        foreach ($langs as $lang) {
+            $SQSPELL_CRYPTO = $SQSPELL_CRYPTO_ORIG;
+            /**
+             * Let's encrypt the file and save it in an encrypted format.
+             */
+            $words=sqspell_getLang($lang);
+            /**
+             * Flip the flag so the sqspell_writeWords function knows to encrypt
+             * the message before writing it to the disk.
+             */
+            $SQSPELL_CRYPTO=true;
+            /**
+             * Call the function that does the actual encryption_decryption.
+             */
+            sqspell_writeWords($words,$lang);
+        }
+        $msg='<p>'
+            . _("Your personal dictionary has been encrypted and is now stored in an encrypted format.")
+            . '</p>';
+    break;
+    case 'decrypt':
+        $SQSPELL_CRYPTO_ORIG=$SQSPELL_CRYPTO;
+
+        foreach ($langs as $lang) {
+            $SQSPELL_CRYPTO = $SQSPELL_CRYPTO_ORIG;
+            /**
+             * Let's encrypt the file and save it in an encrypted format.
+             */
+            $words=sqspell_getLang($lang);
+            /**
+             * Flip the flag so the sqspell_writeWords function knows to decrypt
+             * the message before writing it to the disk.
+             */
+            $SQSPELL_CRYPTO=false;
+            /**
+             * Call the function that does the actual encryption_decryption.
+             */
+            sqspell_writeWords($words,$lang);
+        }
+        $msg='<p>'
+            . _("Your personal dictionary has been decrypted and is now stored as plain text.")
+            . '</p>';
+    break;
+    default:
+        /**
+         * Wait, this shouldn't happen! :)
+         */
+        $msg = '<p>'._("No action requested.").'</p>';
+    break;
+}
+sqspell_makePage( _("Personal Dictionary Crypto Settings"), null, $msg);
+
+/**
+ * For Emacs weenies:
+ * Local variables:
+ * mode: php
+ * End:
+ * vim: syntax=php
+ */