From: Stéphane Jacob Date: Thu, 7 Jul 2011 09:57:01 +0000 (+0200) Subject: Fixes bestalias update when two local_part are identical (Closes #1517). X-Git-Tag: xorg/1.1.3~49 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=4b1d057bb79ea3f9e13a959f79f7d032e1ce4b85;p=platal.git Fixes bestalias update when two local_part are identical (Closes #1517). Signed-off-by: Stéphane Jacob --- 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)