break;
case 'has_profile':
+ case 'has_email_redirect':
+ case 'has_valid_email':
$class = 'ufc_' . str_replace('_', '', $type);
$cond = new $class();
break;
}
// }}}
// {{{ class UFC_HasEmailRedirect
-/** Filters users, keeping only those with a valid email redirection.
+/** Filters users, keeping only those with a valid email redirection (only X.org accounts).
*/
class UFC_HasEmailRedirect extends UserFilterCondition
{
$sub_redirect = $uf->addEmailRedirectFilter();
return 'ra' . $sub_redirect . '.flags = \'active\'';
}
+
+ public function export()
+ {
+ $export = $this->buildExport('has_email_redirect');
+ return $export;
+ }
+}
+// }}}
+// {{{ class UFC_HasValidEmail
+/** Filters users, keeping only those with a valid email address (all accounts).
+ */
+class UFC_HasValidEmail extends UserFilterCondition
+{
+ public function buildCondition(PlFilter $uf)
+ {
+ $sub_redirect = $uf->addEmailRedirectFilter();
+ $uf->requireAccounts();
+ return 'ra' . $sub_redirect . '.flags = \'active\' OR a.email IS NOT NULL';
+ }
+
+ public function export()
+ {
+ $export = $this->buildExport('has_valid_email');
+ return $export;
+ }
}
// }}}
// {{{ class UFC_Ip
WHERE id = {?}',
$this->id);
- $ufc = new PFC_And($this->getRecipientsUFC(), new UFC_NLSubscribed($this->nl->id, $this->id), new UFC_HasEmailRedirect());
+ $ufc = new PFC_And($this->getRecipientsUFC(), new UFC_NLSubscribed($this->nl->id, $this->id), new UFC_HasValidEmail());
$emailsCount = 0;
$uf = new UserFilter($ufc, array(new UFO_IsAdmin(), new UFO_Uid()));
$limit = new PlLimit(self::BATCH_SIZE);