From 0702af2967f1dfaae3f13a63e8eabdfd1373a66c Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Thu, 14 Apr 2011 16:57:53 +0200 Subject: [PATCH] Fixes UFC_HasEmailRedirect. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- classes/userfilter.php | 13 +++++++++++++ classes/userfilter/conditions.inc.php | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/classes/userfilter.php b/classes/userfilter.php index a98ed75..c67213d 100644 --- a/classes/userfilter.php +++ b/classes/userfilter.php @@ -943,6 +943,16 @@ class UserFilter extends PlFilter return $this->register_optional($this->sa, $email); } + private $with_rf = false; + /** Allows filtering by active redirection. + * @return Suffix to use to access the adequate table. + */ + public function addActiveEmailRedirectFilter($email = null) + { + $this->requireAccounts(); + $this->with_rf = true; + } + protected function emailJoins() { global $globals; @@ -974,6 +984,9 @@ class UserFilter extends PlFilter $joins['sa' . $sub] = PlSqlJoin::left('email_source_account', '$ME.uid = $UID AND $ME.email IN {?}', $emails); } } + if ($this->with_rf) { + $joins['rf'] = PlSqlJoin::left('email_redirect_account', '$ME.uid = $UID AND $ME.type != \'imap\' AND $ME.flags = \'active\'');; + } return $joins; } diff --git a/classes/userfilter/conditions.inc.php b/classes/userfilter/conditions.inc.php index e445d21..c213de6 100644 --- a/classes/userfilter/conditions.inc.php +++ b/classes/userfilter/conditions.inc.php @@ -339,8 +339,8 @@ class UFC_HasEmailRedirect extends UserFilterCondition { public function buildCondition(PlFilter $uf) { - $sub_redirect = $uf->addEmailRedirectFilter(); - return 'ra' . $sub_redirect . '.flags = \'active\''; + $sub_redirect = $uf->addActiveEmailRedirectFilter(); + return 'rf.redirect IS NOT NULL'; } public function export() -- 2.1.4