diff options
Diffstat (limited to 'plugins/virtuser_file/virtuser_file.php')
-rw-r--r-- | plugins/virtuser_file/virtuser_file.php | 92 |
1 files changed, 47 insertions, 45 deletions
diff --git a/plugins/virtuser_file/virtuser_file.php b/plugins/virtuser_file/virtuser_file.php index f2b357aaf..01032616c 100644 --- a/plugins/virtuser_file/virtuser_file.php +++ b/plugins/virtuser_file/virtuser_file.php @@ -3,10 +3,10 @@ /** * File based User-to-Email and Email-to-User lookup * - * Add it to the plugins list in config.inc.php and set + * Add it to the plugins list in config/main.inc.php and set * path to a virtuser table file to resolve user names and e-mail * addresses - * $rcmail['virtuser_file'] = ''; + * $rcmail_config['virtuser_file'] = ''; * * @version @package_version@ * @license GNU GPLv3+ @@ -19,13 +19,13 @@ class virtuser_file extends rcube_plugin 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')); + } } /** @@ -34,24 +34,25 @@ class virtuser_file extends rcube_plugin 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[] = rcube_utils::idn_to_ascii(trim(str_replace('\\@', '@', $arr[0]))); + if (count($arr) > 0 && strpos($arr[0], '@')) { + $result[] = rcube_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; } /** @@ -59,18 +60,18 @@ class virtuser_file extends rcube_plugin */ 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])); + 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; - } - } + if (count($arr) > 0) { + $p['user'] = trim($arr[count($arr)-1]); + break; + } + } - return $p; + return $p; } /** @@ -81,25 +82,26 @@ class virtuser_file extends rcube_plugin */ private function findinvirtual($pattern) { - $result = array(); - $virtual = null; + $result = array(); + $virtual = null; - if ($this->file) - $virtual = file($this->file); + if ($this->file) + $virtual = file($this->file); - if (empty($virtual)) - return $result; + if (empty($virtual)) + return $result; - // check each line for matches - foreach ($virtual as $line) { - $line = trim($line); - if (empty($line) || $line[0]=='#') - continue; + // 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; - } + if (preg_match($pattern, $line)) + $result[] = $line; + } - return $result; + return $result; } + } |