From e58df3adc9b4182c232c94178d024bb4a89c2290 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Sun, 15 Jun 2008 05:19:47 -0400
Subject: [PATCH] - Added option to select skin in user preferences (#1485031) - template_exists() moved to rcube_template class

---
 program/include/rcube_user.php |   41 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/program/include/rcube_user.php b/program/include/rcube_user.php
index e125f63..5f970ec 100644
--- a/program/include/rcube_user.php
+++ b/program/include/rcube_user.php
@@ -24,7 +24,7 @@
 /**
  * Class representing a system user
  *
- * @package    core
+ * @package    Core
  * @author     Thomas Bruederli <roundcube@gmail.com>
  */
 class rcube_user
@@ -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