diff options
Diffstat (limited to 'plugins/virtuser_query')
-rw-r--r-- | plugins/virtuser_query/package.xml | 8 | ||||
-rw-r--r-- | plugins/virtuser_query/virtuser_query.php | 64 |
2 files changed, 14 insertions, 58 deletions
diff --git a/plugins/virtuser_query/package.xml b/plugins/virtuser_query/package.xml index 9430bf69d..58f697019 100644 --- a/plugins/virtuser_query/package.xml +++ b/plugins/virtuser_query/package.xml @@ -13,16 +13,16 @@ <email>alec@alec.pl</email> <active>yes</active> </lead> - <date>2012-02-17</date> + <date>2011-11-21</date> <version> - <release>2.0</release> - <api>2.0</api> + <release>1.1</release> + <api>1.1</api> </version> <stability> <release>stable</release> <api>stable</api> </stability> - <license uri="http://www.gnu.org/licenses/gpl.html">GNU GPLv3+</license> + <license uri="http://www.gnu.org/licenses/gpl-2.0.html">GNU GPLv2</license> <notes>-</notes> <contents> <dir baseinstalldir="/" name="/"> diff --git a/plugins/virtuser_query/virtuser_query.php b/plugins/virtuser_query/virtuser_query.php index a0b748288..a4c83265e 100644 --- a/plugins/virtuser_query/virtuser_query.php +++ b/plugins/virtuser_query/virtuser_query.php @@ -3,7 +3,7 @@ /** * DB 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 * SQL queries to resolve usernames, e-mail addresses and hostnames from the database * %u will be replaced with the current username for login. * %m will be replaced with the current e-mail address for login. @@ -12,29 +12,23 @@ * The email query could optionally select identity data columns in specified order: * name, organization, reply-to, bcc, signature, html_signature * - * $config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => '', 'alias' => ''); + * $rcmail_config['virtuser_query'] = array('email' => '', 'user' => '', 'host' => ''); * * The email query can return more than one record to create more identities. * This requires identities_level option to be set to value less than 2. * - * By default Roundcube database is used. To use different database (or host) - * you can specify DSN string in $config['virtuser_query_dsn'] option. - * * @version @package_version@ * @author Aleksander Machniak <alec@alec.pl> * @author Steffen Vogel - * @author Tim Gerundt - * @license GNU GPLv3+ */ class virtuser_query extends rcube_plugin { private $config; private $app; - private $db; function init() { - $this->app = rcmail::get_instance(); + $this->app = rcmail::get_instance(); $this->config = $this->app->config->get('virtuser_query'); if (!empty($this->config)) { @@ -51,9 +45,6 @@ class virtuser_query extends rcube_plugin if ($this->config['host']) { $this->add_hook('authenticate', array($this, 'user2host')); } - if ($this->config['alias']) { - $this->add_hook('authenticate', array($this, 'alias2user')); - } } } @@ -62,7 +53,7 @@ class virtuser_query extends rcube_plugin */ function user2email($p) { - $dbh = $this->get_dbh(); + $dbh = $this->app->get_dbh(); $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['email'])); @@ -70,11 +61,11 @@ class virtuser_query extends rcube_plugin if (strpos($sql_arr[0], '@')) { if ($p['extended'] && count($sql_arr) > 1) { $result[] = array( - 'email' => rcube_utils::idn_to_ascii($sql_arr[0]), + 'email' => rcube_idn_to_ascii($sql_arr[0]), 'name' => $sql_arr[1], 'organization' => $sql_arr[2], - 'reply-to' => rcube_utils::idn_to_ascii($sql_arr[3]), - 'bcc' => rcube_utils::idn_to_ascii($sql_arr[4]), + 'reply-to' => rcube_idn_to_ascii($sql_arr[3]), + 'bcc' => rcube_idn_to_ascii($sql_arr[4]), 'signature' => $sql_arr[5], 'html_signature' => (int)$sql_arr[6], ); @@ -99,7 +90,7 @@ class virtuser_query extends rcube_plugin */ function email2user($p) { - $dbh = $this->get_dbh(); + $dbh = $this->app->get_dbh(); $sql_result = $dbh->query(preg_replace('/%m/', $dbh->escape($p['email']), $this->config['user'])); @@ -115,7 +106,7 @@ class virtuser_query extends rcube_plugin */ function user2host($p) { - $dbh = $this->get_dbh(); + $dbh = $this->app->get_dbh(); $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['host'])); @@ -126,40 +117,5 @@ class virtuser_query extends rcube_plugin return $p; } - /** - * Alias > User - */ - function alias2user($p) - { - $dbh = $this->get_dbh(); - - $sql_result = $dbh->query(preg_replace('/%u/', $dbh->escape($p['user']), $this->config['alias'])); - - if ($sql_arr = $dbh->fetch_array($sql_result)) { - $p['user'] = $sql_arr[0]; - } - - return $p; - } - - /** - * Initialize database handler - */ - function get_dbh() - { - if (!$this->db) { - if ($dsn = $this->app->config->get('virtuser_query_dsn')) { - // connect to the virtuser database - $this->db = rcube_db::factory($dsn); - $this->db->set_debug((bool)$this->app->config->get('sql_debug')); - $this->db->db_connect('r'); // connect in read mode - } - else { - $this->db = $this->app->get_dbh(); - } - } - - return $this->db; - } - } + |