From 83a7636872d58f044d1fac444268dd2e7c7ebaee Mon Sep 17 00:00:00 2001 From: thomascube <thomas@roundcube.net> Date: Sat, 14 Jun 2008 08:23:08 -0400 Subject: [PATCH] More code cleanup --- program/include/rcube_user.php | 39 ++++++++++++++++++++++++++++++++++++--- 1 files changed, 36 insertions(+), 3 deletions(-) diff --git a/program/include/rcube_user.php b/program/include/rcube_user.php index c808d07..5f970ec 100644 --- a/program/include/rcube_user.php +++ b/program/include/rcube_user.php @@ -362,7 +362,7 @@ if ($user_id = $dbh->insert_id(get_sequence_name('users'))) { - $mail_domain = rcmail_mail_domain($host); + $mail_domain = $rcmail->config->mail_domain($host); if ($user_email=='') $user_email = strpos($user, '@') ? $user : sprintf('%s@%s', $user, $mail_domain); @@ -420,7 +420,7 @@ static function email2user($email) { $user = $email; - $r = rcmail_findinvirtual("^$email"); + $r = self::findinvirtual("^$email"); for ($i=0; $i<count($r); $i++) { @@ -446,7 +446,7 @@ static function user2email($user) { $email = ""; - $r = rcmail_findinvirtual("$user$"); + $r = self::findinvirtual("$user$"); for ($i=0; $i<count($r); $i++) { @@ -461,6 +461,39 @@ return $email; } + + + /** + * Find matches of the given pattern in virtuser table + * + * @param string Regular expression to search for + * @return array Matching entries + */ + private static function findinvirtual($pattern) + { + $result = array(); + $virtual = null; + + if ($virtuser_file = rcmail::get_instance()->config->get('virtuser_file')) + $virtual = file($virtuser_file); + + if (empty($virtual)) + return $result; + + // check each line for matches + foreach ($virtual as $line) + { + $line = trim($line); + if (empty($line) || $line{0}=='#') + continue; + + if (eregi($pattern, $line)) + $result[] = $line; + } + + return $result; + } + } -- Gitblit v1.9.1