From cbce77b738f8ac05f9469ef1a2be98db98723409 Mon Sep 17 00:00:00 2001 From: x2003bruneau Date: Sat, 20 Jan 2007 09:33:23 +0000 Subject: [PATCH] Better email filter for user subscription git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@1367 839d8a87-29fc-0310-9880-83ba4fa771e5 --- classes/csvimporter.php | 4 +++- modules/axletter.php | 33 ++++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/classes/csvimporter.php b/classes/csvimporter.php index da8ed5a..bf5cfe2 100644 --- a/classes/csvimporter.php +++ b/classes/csvimporter.php @@ -239,7 +239,8 @@ class CSVImporter return false; } foreach ($this->field_value as $key=>$value) { - unset($fields[$key]); + $search = array_search($key, $fields); + unset($fields[$search]); } $current = Env::v('csv_page'); @@ -288,6 +289,7 @@ class CSVImporter } foreach ($this->field_value as $key=>$value) { $insert[$key] = $value; + $fields[] = $key; } if ($current == 'valid' && Env::has('csv_valid')) { $this->run(Env::v('csv_action'), $insert, $update); diff --git a/modules/axletter.php b/modules/axletter.php index d1f1c44..4ef05de 100644 --- a/modules/axletter.php +++ b/modules/axletter.php @@ -318,6 +318,7 @@ class AXLetterModule extends PLModule function idFromMail($line, $key) { static $field; + global $globals; if (!isset($field)) { $field = array('email', 'mail', 'login', 'bestalias', 'forlife', 'flag'); foreach ($field as $fld) { @@ -330,23 +331,29 @@ class AXLetterModule extends PLModule $email = $line[$field]; if (strpos($email, '@') === false) { $user = $email; + $domain = $globals->mail->domain2; } else { - global $globals; list($user, $domain) = explode('@', $email); - if ($domain != $globals->mail->domain && $domain != $globals->mail->domain2 + } + if ($domain != $globals->mail->domain && $domain != $globals->mail->domain2 && $domain != $globals->mail->alias_dom && $domain != $globals->mail->alias_dom2) { - return '0'; - } - if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) { - $res = XDB::query("SELECT a.id - FROM virtual AS v - INNER JOIN virtual_redirect AS r USING(vid) - INNER JOIN aliases AS a ON (a.type = 'a_vie' - AND r.redirect = CONCAT(a.alias, '@{$globals->mail->domain2}') - WHERE v.alias = CONCAT({?}, '@{$globals->mail->alias_dom}')", $user); - $id = $res->fetchOneCell(); - return $id ? $id : '0'; + $res = XDB::query("SELECT uid FROM emails WHERE email = {?}", $email); + if ($res->numRows() == 1) { + return $res->fetchOneCell(); } + return '0'; + } + list($user) = explode('+', $user); + list($user) = explode('_', $user); + if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) { + $res = XDB::query("SELECT a.id + FROM virtual AS v + INNER JOIN virtual_redirect AS r USING(vid) + INNER JOIN aliases AS a ON (a.type = 'a_vie' + AND r.redirect = CONCAT(a.alias, '@{$globals->mail->domain2}')) + WHERE v.alias = CONCAT({?}, '@{$globals->mail->alias_dom}')", $user); + $id = $res->fetchOneCell(); + return $id ? $id : '0'; } $res = XDB::query("SELECT id FROM aliases WHERE alias = {?}", $user); $id = $res->fetchOneCell(); -- 2.1.4