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