From a3ca42eebec1323b1d6e1ced8bd510d9c8826799 Mon Sep 17 00:00:00 2001 From: Daniel Kesselberg Date: Sat, 25 Apr 2020 21:52:03 +0200 Subject: [PATCH 1/9] Load image data for all images --- dev/Model/Message.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/Model/Message.js b/dev/Model/Message.js index 5aa3e0a04..ee1c023b3 100644 --- a/dev/Model/Message.js +++ b/dev/Model/Message.js @@ -743,7 +743,7 @@ class MessageModel extends AbstractModel { showLazyExternalImagesInBody() { if (this.body) { - $('.lazy.lazy-inited[data-original]', this.body).each(function() { + $('.lazy[data-original]', this.body).each(function() { $(this) .attr('src', $(this).attr('data-original')) // eslint-disable-line no-invalid-this .removeAttr('data-original') From 3dbb43e18812a6f27e9446f0151727396ffd6ce2 Mon Sep 17 00:00:00 2001 From: Simon Chuu Date: Mon, 18 May 2020 22:59:05 -0400 Subject: [PATCH 2/9] plugins/postfixadmin-change-password: Add "ARGON2I" My mail server was set up with `dovecot:ARGON2I` password encryption option. This allows people who set up argon2i as the encryption method to continue using it when users change their password with the plugin. --- .../ChangePasswordPostfixAdminDriver.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/postfixadmin-change-password/ChangePasswordPostfixAdminDriver.php b/plugins/postfixadmin-change-password/ChangePasswordPostfixAdminDriver.php index 00f1d78c5..384c1c996 100755 --- a/plugins/postfixadmin-change-password/ChangePasswordPostfixAdminDriver.php +++ b/plugins/postfixadmin-change-password/ChangePasswordPostfixAdminDriver.php @@ -319,6 +319,10 @@ class ChangePasswordPostfixAdminDriver implements \RainLoop\Providers\ChangePass case 'sha512-crypt': $sResult = '{SHA512-CRYPT}' . crypt($sPassword,'$6$'.$sSalt); break; + + case 'argon2i': + $sResult = '{ARGON2I}' . password_hash($sPassword, PASSWORD_ARGON2I); + break; case 'mysql_encrypt': if($this->sEngine == 'MySQL'){ From 286e0110503715345e0c7d7ca29d5899afefcd11 Mon Sep 17 00:00:00 2001 From: Simon Chuu Date: Mon, 18 May 2020 23:01:44 -0400 Subject: [PATCH 3/9] plugins/postfixadmin-change-password: Add 'argon2i' configuration option --- plugins/postfixadmin-change-password/index.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/postfixadmin-change-password/index.php b/plugins/postfixadmin-change-password/index.php index ef2f5eee1..24cfa061e 100755 --- a/plugins/postfixadmin-change-password/index.php +++ b/plugins/postfixadmin-change-password/index.php @@ -89,7 +89,7 @@ class PostfixadminChangePasswordPlugin extends \RainLoop\Plugins\AbstractPlugin ->SetDefaultValue(''), \RainLoop\Plugins\Property::NewInstance('encrypt')->SetLabel('Encrypt') ->SetType(\RainLoop\Enumerations\PluginPropertyType::SELECTION) - ->SetDefaultValue(array('md5crypt', 'md5', 'system', 'cleartext', 'mysql_encrypt', 'SHA256-CRYPT', 'SHA512-CRYPT')) + ->SetDefaultValue(array('md5crypt', 'md5', 'system', 'cleartext', 'argon2i', 'mysql_encrypt', 'SHA256-CRYPT', 'SHA512-CRYPT')) ->SetDescription('In what way do you want the passwords to be crypted ?'), \RainLoop\Plugins\Property::NewInstance('allowed_emails')->SetLabel('Allowed emails') ->SetType(\RainLoop\Enumerations\PluginPropertyType::STRING_TEXT) From 39f1a72da08ea0f2c649f51adaa7a0d8366c8424 Mon Sep 17 00:00:00 2001 From: lub Date: Wed, 9 Sep 2020 20:00:01 +0200 Subject: [PATCH 4/9] throw 403 on access denied --- rainloop/v/0.0.0/app/libraries/RainLoop/Service.php | 1 + 1 file changed, 1 insertion(+) diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php index 8fffce1b6..e23a9b270 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Service.php @@ -130,6 +130,7 @@ class Service if ($bAdmin && !$this->oActions->Config()->Get('security', 'allow_admin_panel', true)) { + $this->oHttp->StatusHeader(403); echo $this->oServiceActions->ErrorTemplates('Access Denied.', 'Access to the RainLoop Webmail Admin Panel is not allowed!', true); From 02fb256456f1d49dd08f8c212635da6a26e66955 Mon Sep 17 00:00:00 2001 From: Honza Date: Mon, 2 Nov 2020 23:11:15 +0100 Subject: [PATCH 5/9] This works also for CC and BCC --- plugins/excel-multirow-maillist-parser/js/parse_excel_list.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/excel-multirow-maillist-parser/js/parse_excel_list.js b/plugins/excel-multirow-maillist-parser/js/parse_excel_list.js index 9f1f8b976..96204868d 100644 --- a/plugins/excel-multirow-maillist-parser/js/parse_excel_list.js +++ b/plugins/excel-multirow-maillist-parser/js/parse_excel_list.js @@ -3,7 +3,7 @@ $(function() { - $(window.document).on('keyup', '.b-compose .b-header .inputosaurus-input input[type="text"]:first', function() { + $(window.document).on('keyup', '.b-compose .b-header .inputosaurus-input input[type="text"]', function() { var $this = $(this), @@ -19,4 +19,4 @@ }); -}(window, $)) \ No newline at end of file +}(window, $)) From 76ac8567cf365e078ff2484ab6af1be8f6d207d4 Mon Sep 17 00:00:00 2001 From: Igor Valente Blackman Date: Tue, 16 Mar 2021 10:55:38 -0300 Subject: [PATCH 6/9] Add missing primary key to rainloop_system table Signed-off-by: Igor Valente Blackman --- .../v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php index 13c5d9e59..d8b0af173 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Common/PdoAbstract.php @@ -442,9 +442,11 @@ abstract class PdoAbstract { case 'mysql': $aQ[] = 'CREATE TABLE IF NOT EXISTS rainloop_system ( +id bigint UNSIGNED NOT NULL AUTO_INCREMENT, sys_name varchar(50) NOT NULL, value_int int UNSIGNED NOT NULL DEFAULT 0, value_str varchar(128) NOT NULL DEFAULT \'\', +PRIMARY KEY(id), INDEX sys_name_rainloop_system_index (sys_name) ) /*!40000 ENGINE=INNODB *//*!40101 CHARACTER SET utf8 COLLATE utf8_general_ci */;'; $aQ[] = 'CREATE TABLE IF NOT EXISTS rainloop_users ( @@ -600,4 +602,4 @@ rl_email text NOT NULL DEFAULT \'\' return $bResult; } -} \ No newline at end of file +} From c2fc21afedb31aecc3fc21265e01c33382dd67aa Mon Sep 17 00:00:00 2001 From: fdisamuel <62856267+fdisamuel@users.noreply.github.com> Date: Tue, 23 Mar 2021 12:14:38 +0100 Subject: [PATCH 7/9] Google Document viewer and Managesieve Fixes Make some changes in order to make work Google document viewer, and ManageSieve integration (tested only with PHP 7.4). --- .../v/0.0.0/app/libraries/MailSo/Sieve/ManageSieveClient.php | 2 +- rainloop/v/0.0.0/app/libraries/RainLoop/ServiceActions.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Sieve/ManageSieveClient.php b/rainloop/v/0.0.0/app/libraries/MailSo/Sieve/ManageSieveClient.php index f715a312b..702f72f97 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Sieve/ManageSieveClient.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Sieve/ManageSieveClient.php @@ -113,7 +113,7 @@ class ManageSieveClient extends \MailSo\Net\NetClient */ public function Connect($sServerName, $iPort, $iSecurityType = \MailSo\Net\Enumerations\ConnectionSecurityType::AUTO_DETECT, - $bVerifySsl = false, $bAllowSelfSigned = true) + $bVerifySsl = false, $bAllowSelfSigned = true, $sClientCert = '') { $this->iRequestTime = \microtime(true); diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/ServiceActions.php b/rainloop/v/0.0.0/app/libraries/RainLoop/ServiceActions.php index d95935e69..29353a3bd 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/ServiceActions.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/ServiceActions.php @@ -506,7 +506,7 @@ class ServiceActions if (\method_exists($this->oActions, $sMethodName)) { @\header('X-Raw-Action: '.$sMethodName, true); - @\header('Content-Security-Policy: script-src \'none\'; child-src \'none\'', true); + @\header('Content-Security-Policy: script-src \'none\'; child-src \'none\' docs.google.com apis.google.com', true); $sRawError = ''; $this->oActions->SetActionParams(array( From b0b27aff511a64483f7add801679d5de6f3744e6 Mon Sep 17 00:00:00 2001 From: djmaze Date: Fri, 26 Mar 2021 17:03:48 +0100 Subject: [PATCH 8/9] Resolve issue https://github.com/RainLoop/rainloop-webmail/issues/2037 --- .../app/libraries/MailSo/Imap/ImapClient.php | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php b/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php index 65aba038d..a79f1bead 100644 --- a/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php +++ b/rainloop/v/0.0.0/app/libraries/MailSo/Imap/ImapClient.php @@ -664,11 +664,28 @@ class ImapClient extends \MailSo\Net\NetClient foreach ($aResult as /* @var $oImapResponse \MailSo\Imap\Response */ $oImapResponse) { if (\MailSo\Imap\Enumerations\ResponseType::UNTAGGED === $oImapResponse->ResponseType && - $sStatus === $oImapResponse->StatusOrIndex && 5 === count($oImapResponse->ResponseList)) + $sStatus === $oImapResponse->StatusOrIndex && 5 <= count($oImapResponse->ResponseList)) { try { - $oFolder = Folder::NewInstance($oImapResponse->ResponseList[4], + /** + * A bug in the parser converts folder names that start with '[' into arrays, + * and subfolders are in $oResponse->ResponseList[5+] + * https://github.com/the-djmaze/snappymail/issues/1 + * https://github.com/the-djmaze/snappymail/issues/70 + * https://github.com/RainLoop/rainloop-webmail/issues/2037 + */ + $sFullNameRaw = \array_slice($oResponse->ResponseList, 4); + foreach ($sFullNameRaw as &$name) { + if (\is_array($name)) { + $name = "[{$name[0]}]"; + } else if (!\is_string($name)) { + $name = ''; + } + } + $sFullNameRaw = \implode('', $sFullNameRaw); + + $oFolder = Folder::NewInstance($sFullNameRaw, $oImapResponse->ResponseList[3], $oImapResponse->ResponseList[2]); if ($oFolder->IsInbox()) From 7f0b8f44baac11337b6f9e53d2423a8b001521d9 Mon Sep 17 00:00:00 2001 From: Edward Betts Date: Wed, 14 Apr 2021 09:27:45 +0100 Subject: [PATCH 9/9] Correct spelling mistake --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 680652949..9b4ec1fb2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
- +

RainLoop Webmail