Fixes UFC_HasEmailRedirect.
authorStéphane Jacob <sj@m4x.org>
Thu, 14 Apr 2011 14:57:53 +0000 (16:57 +0200)
committerStéphane Jacob <sj@m4x.org>
Fri, 15 Apr 2011 07:16:24 +0000 (09:16 +0200)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
classes/userfilter.php
classes/userfilter/conditions.inc.php

index a98ed75..c67213d 100644 (file)
@@ -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;
     }
 
index e445d21..c213de6 100644 (file)
@@ -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()