From 3498700f613777d484c427e82a407b84d926d1c6 Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Wed, 26 Aug 2015 21:04:50 +0300 Subject: [PATCH] Add additional logging for OpenPGP Remove enforcing lower case for email addresses Small fixes --- dev/App/Abstract.js | 5 ++-- dev/App/User.js | 9 ++++++- dev/Model/OpenPgpKey.js | 9 +++++-- dev/Stores/User/Pgp.js | 22 ++++++++++++++-- dev/Styles/MessageView.less | 2 -- dev/View/Popup/ComposeOpenPgp.js | 2 ++ dev/View/Popup/NewOpenPgpKey.js | 1 + .../0.0.0/app/libraries/MailSo/Base/Utils.php | 20 ++++++++++++-- .../0.0.0/app/libraries/RainLoop/Actions.php | 26 ++++++++++++++++--- .../RainLoop/Config/AbstractConfig.php | 8 ++++++ .../AddressBook/Classes/Property.php | 2 +- 11 files changed, 89 insertions(+), 17 deletions(-) diff --git a/dev/App/Abstract.js b/dev/App/Abstract.js index b56fd4f93..1754af849 100644 --- a/dev/App/Abstract.js +++ b/dev/App/Abstract.js @@ -124,11 +124,10 @@ { var oE = null, - oLink = null, - sUserAgent = window.navigator.userAgent.toLowerCase() + oLink = null ; - if (sUserAgent && (sUserAgent.indexOf('chrome') > -1 || sUserAgent.indexOf('chrome') > -1)) + if (Globals.sUserAgent && (Globals.sUserAgent.indexOf('chrome') > -1 || Globals.sUserAgent.indexOf('chrome') > -1)) { oLink = window.document.createElement('a'); oLink['href'] = sLink; diff --git a/dev/App/User.js b/dev/App/User.js index 290ec2f08..f6dbb0eb5 100644 --- a/dev/App/User.js +++ b/dev/App/User.js @@ -1383,7 +1383,14 @@ if (window.Worker) { - PgpStore.openpgp.initWorker(Links.openPgpWorkerJs()); + try + { + PgpStore.openpgp.initWorker(Links.openPgpWorkerJs()); + } + catch (e) + { + Utils.log(e); + }; } // PgpStore.openpgp.config.useWebCrypto = false; diff --git a/dev/Model/OpenPgpKey.js b/dev/Model/OpenPgpKey.js index 896bd056b..735d9f2fd 100644 --- a/dev/Model/OpenPgpKey.js +++ b/dev/Model/OpenPgpKey.js @@ -7,6 +7,8 @@ _ = require('_'), ko = require('ko'), + Utils = require('Common/Utils'), + PgpStore = require('Stores/User/Pgp'), AbstractModel = require('Knoin/AbstractModel') @@ -58,8 +60,11 @@ return oKey.keys; } } - catch (e) {} - + catch (e) + { + Utils.log(e); + } + return null; }; diff --git a/dev/Stores/User/Pgp.js b/dev/Stores/User/Pgp.js index c6ae88594..03d8857a9 100644 --- a/dev/Stores/User/Pgp.js +++ b/dev/Stores/User/Pgp.js @@ -301,7 +301,16 @@ return false; } - var oMessage = self.openpgp.message.readArmored(sData); + var oMessage = null; + try + { + oMessage = self.openpgp.message.readArmored(sData); + } + catch (e) + { + Utils.log(e); + }; + if (oMessage && oMessage.getText && oMessage.verify && oMessage.decrypt) { self.decryptMessage(oMessage, function (oValidPrivateKey, oDecriptedMessage, oValidPublicKey, aSigningKeyIds) { @@ -361,7 +370,16 @@ return false; } - var oMessage = self.openpgp.cleartext.readArmored(sData); + var oMessage = null; + try + { + oMessage = self.openpgp.cleartext.readArmored(sData); + } + catch (e) + { + Utils.log(e); + }; + if (oMessage && oMessage.getText && oMessage.verify) { self.verifyMessage(oMessage, function (oValidKey, aSigningKeyIds) { diff --git a/dev/Styles/MessageView.less b/dev/Styles/MessageView.less index a101a533f..49096e7db 100644 --- a/dev/Styles/MessageView.less +++ b/dev/Styles/MessageView.less @@ -389,7 +389,6 @@ html.rl-no-preview-pane { font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; display: block; max-width: 700px; - white-space: pre; word-wrap: break-word; } } @@ -407,7 +406,6 @@ html.rl-no-preview-pane { border: none; font-family: Monaco, Menlo, Consolas, 'Courier New', monospace; display: block; - white-space: pre; } pre.b-plain-openpgp { diff --git a/dev/View/Popup/ComposeOpenPgp.js b/dev/View/Popup/ComposeOpenPgp.js index 70625f669..bea06ea99 100644 --- a/dev/View/Popup/ComposeOpenPgp.js +++ b/dev/View/Popup/ComposeOpenPgp.js @@ -176,6 +176,8 @@ } catch (e) { + Utils.log(e); + self.notification(Translator.i18n('PGP_NOTIFICATIONS/PGP_ERROR', { 'ERROR': '' + e })); diff --git a/dev/View/Popup/NewOpenPgpKey.js b/dev/View/Popup/NewOpenPgpKey.js index f57ad9850..728b10f18 100644 --- a/dev/View/Popup/NewOpenPgpKey.js +++ b/dev/View/Popup/NewOpenPgpKey.js @@ -92,6 +92,7 @@ } catch (e) { + Utils.log(e); self.submitRequest(false); } diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php b/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php index d2608c334..993b4c061 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Base/Utils.php @@ -550,6 +550,22 @@ END; return \MailSo\Base\Utils::IsAscii($sValue) ? \strtoupper($sValue) : $sValue; } + /** + * @param string $sValue + * + * @return string + */ + public static function StrMailDomainToLowerIfAscii($sValue) + { + $aParts = \explode('@', $sValue, 2); + if (!empty($aParts[1])) + { + $aParts[1] = \MailSo\Base\Utils::IsAscii($aParts[1]) ? \strtolower($aParts[1]) : $aParts[1]; + } + + return \implode('@', $aParts); + } + /** * @param string $sValue * @@ -2415,7 +2431,7 @@ END; catch (\Exception $oException) {} } - return $bLowerIfAscii ? \MailSo\Base\Utils::StrToLowerIfAscii($sStr) : $sStr; + return $bLowerIfAscii ? \MailSo\Base\Utils::StrMailDomainToLowerIfAscii($sStr) : $sStr; } /** @@ -2426,7 +2442,7 @@ END; */ public static function IdnToAscii($sStr, $bLowerIfAscii = false) { - $sStr = $bLowerIfAscii ? \MailSo\Base\Utils::StrToLowerIfAscii($sStr) : $sStr; + $sStr = $bLowerIfAscii ? \MailSo\Base\Utils::StrMailDomainToLowerIfAscii($sStr) : $sStr; $sUser = ''; $sDomain = $sStr; diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php index d7bb0ce3c..6c9f548d0 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -213,12 +213,31 @@ class Actions { $this->oConfig = new \RainLoop\Config\Application(); +// $bSave = defined('APP_INSTALLED_START'); +// if (!$this->oConfig->Load()) +// { +// $bSave = true; +// } +// else if (!$bSave) +// { +// $bSave = APP_VERSION !== $this->oConfig->Get('version', 'current'); +// } + $bSave = defined('APP_INSTALLED_START'); - if (!$this->oConfig->Load()) + + $bLoaded = $this->oConfig->Load(); + if (!$bLoaded && !$bSave) + { + usleep(10000); // TODO + $bLoaded = $this->oConfig->Load(); + } + + if (!$bLoaded && !$this->oConfig->IsFileExists()) { $bSave = true; } - else if (!$bSave) + + if ($bLoaded && !$bSave) { $bSave = APP_VERSION !== $this->oConfig->Get('version', 'current'); } @@ -1996,8 +2015,7 @@ class Actions { $this->Plugins()->RunHook('filter.login-credentials.step-1', array(&$sEmail, &$sPassword)); - $sEmail = \MailSo\Base\Utils::StrToLowerIfAscii( - \MailSo\Base\Utils::Trim($sEmail)); + $sEmail = \MailSo\Base\Utils::StrToLowerIfAscii(\MailSo\Base\Utils::Trim($sEmail)); if (false === \strpos($sEmail, '@')) { diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php index 43d589751..99c6918eb 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/AbstractConfig.php @@ -202,6 +202,14 @@ abstract class AbstractConfig return false; } + /** + * @return bool + */ + public function IsFileExists() + { + return \file_exists($this->sFile); + } + /** * @return bool */ diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Classes/Property.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Classes/Property.php index 78db4e428..18f47f70e 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Classes/Property.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Providers/AddressBook/Classes/Property.php @@ -141,7 +141,7 @@ class Property // lower if ($this->IsEmail()) { - $this->Value = \MailSo\Base\Utils::StrToLowerIfAscii($this->Value); + $this->Value = \MailSo\Base\Utils::StrMailDomainToLowerIfAscii($this->Value); } if ($this->IsName())