From 0b36d151572e050b51d82e7429fee847ebb33e22 Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 20 Nov 2014 06:03:22 -0500
Subject: [PATCH] Add method to display operation (uploading) progress in UI message

---
 plugins/virtuser_file/virtuser_file.php |  112 +++++++++++++++++++++++++++-----------------------------
 1 files changed, 54 insertions(+), 58 deletions(-)

diff --git a/plugins/virtuser_file/virtuser_file.php b/plugins/virtuser_file/virtuser_file.php
index 071722b..f2b357a 100644
--- a/plugins/virtuser_file/virtuser_file.php
+++ b/plugins/virtuser_file/virtuser_file.php
@@ -2,13 +2,14 @@
 
 /**
  * File based User-to-Email and Email-to-User lookup
- * 
- * Add it to the plugins list in config/main.inc.php and set
+ *
+ * Add it to the plugins list in config.inc.php and set
  * path to a virtuser table file to resolve user names and e-mail
  * addresses
- * $rcmail_config['virtuser_file'] = '';
+ * $rcmail['virtuser_file'] = '';
  *
- * @version 1.0
+ * @version @package_version@
+ * @license GNU GPLv3+
  * @author Aleksander Machniak
  */
 class virtuser_file extends rcube_plugin
@@ -18,13 +19,13 @@
 
     function init()
     {
-	$this->app = rcmail::get_instance();
-	$this->file = $this->app->config->get('virtuser_file');
+        $this->app = rcmail::get_instance();
+        $this->file = $this->app->config->get('virtuser_file');
 
-	if ($this->file) {
-	    $this->add_hook('user2email', array($this, 'user2email'));
-	    $this->add_hook('email2user', array($this, 'email2user'));
-	}
+        if ($this->file) {
+            $this->add_hook('user2email', array($this, 'user2email'));
+            $this->add_hook('email2user', array($this, 'email2user'));
+        }
     }
 
     /**
@@ -33,26 +34,24 @@
     function user2email($p)
     {
         $r = $this->findinvirtual('/\s' . preg_quote($p['user'], '/') . '\s*$/');
-	$result = array();
+        $result = array();
 
-	for ($i=0; $i<count($r); $i++)
-	{
-	    $arr = preg_split('/\s+/', $r[$i]);
+        for ($i=0; $i<count($r); $i++) {
+            $arr = preg_split('/\s+/', $r[$i]);
 
-	    if (count($arr) > 0 && strpos($arr[0], '@'))
-	    {
-		$result[] = trim(str_replace('\\@', '@', $arr[0]));
+            if (count($arr) > 0 && strpos($arr[0], '@')) {
+                $result[] = rcube_utils::idn_to_ascii(trim(str_replace('\\@', '@', $arr[0])));
 
-		if ($p['first']) {
-		    $p['email'] = $result[0];
-		    break;
-		}
-	    }
-	}
+                if ($p['first']) {
+                    $p['email'] = $result[0];
+                    break;
+                }
+            }
+        }
 
-	$p['email'] = empty($result) ? NULL : $result;
+        $p['email'] = empty($result) ? NULL : $result;
 
-	return $p;
+        return $p;
     }
 
     /**
@@ -60,19 +59,18 @@
      */
     function email2user($p)
     {
-	$r = $this->findinvirtual('/^' . preg_quote($p['email'], '/') . '\s/');
+        $r = $this->findinvirtual('/^' . preg_quote($p['email'], '/') . '\s/');
 
-	for ($i=0; $i<count($r); $i++)
-        {
-	    $arr = preg_split('/\s+/', trim($r[$i]));
-	    
-	    if (count($arr) > 0) {
-		$p['user'] = trim($arr[count($arr)-1]);
-		break;
-	    }
-	}
+        for ($i=0; $i<count($r); $i++) {
+            $arr = preg_split('/\s+/', trim($r[$i]));
 
-	return $p;
+            if (count($arr) > 0) {
+                $p['user'] = trim($arr[count($arr)-1]);
+                break;
+            }
+        }
+
+        return $p;
     }
 
     /**
@@ -83,27 +81,25 @@
      */
     private function findinvirtual($pattern)
     {
-	$result = array();
-	$virtual = null;
-	
-	if ($this->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 (preg_match($pattern, $line))
-	        $result[] = $line;
-	}
-	
-	return $result;
-    }
+        $result = array();
+        $virtual = null;
 
+        if ($this->file)
+            $virtual = file($this->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 (preg_match($pattern, $line))
+                $result[] = $line;
+        }
+
+        return $result;
+    }
 }

--
Gitblit v1.9.1