From 4b1d057bb79ea3f9e13a959f79f7d032e1ce4b85 Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Thu, 7 Jul 2011 11:57:01 +0200 Subject: [PATCH] Fixes bestalias update when two local_part are identical (Closes #1517). MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- ChangeLog | 5 +++++ modules/email.php | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 04fe73a..fda60c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,11 @@ ================================================================================ VERSION 1.1.3 XX XX XXXX +Bug/Wish: + + * Email : + - #1517: Fixes bestalias update when two local_part are identical -JAC + ================================================================================ VERSION 1.1.2 28 06 2011 diff --git a/modules/email.php b/modules/email.php index 7648515..73a22c7 100644 --- a/modules/email.php +++ b/modules/email.php @@ -67,9 +67,12 @@ class EmailModule extends PLModule WHERE uid = {?}", $user->id()); // Then gives the bestalias flag to the given email. list($email, $domain) = explode('@', $email); - XDB::execute("UPDATE email_source_account + XDB::execute("UPDATE email_source_account AS s + INNER JOIN email_virtual_domains AS m ON (m.id = s.domain) + INNER JOIN email_virtual_domains AS d ON (d.aliasing = m.id) SET flags = CONCAT_WS(',', IF(flags = '', NULL, flags), 'bestalias') - WHERE uid = {?} AND email = {?}", $user->id(), $email); + WHERE s.uid = {?} AND s.email = {?} AND d.name = {?}", + $user->id(), $email, $domain); XDB::execute('UPDATE accounts AS a INNER JOIN email_virtual_domains AS d ON (d.name = {?}) INNER JOIN email_virtual_domains AS m ON (d.aliasing = m.id) -- 2.1.4