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