diff options
Diffstat (limited to 'includes/pear/Auth/Container/IMAP.php')
| -rw-r--r-- | includes/pear/Auth/Container/IMAP.php | 210 |
1 files changed, 0 insertions, 210 deletions
diff --git a/includes/pear/Auth/Container/IMAP.php b/includes/pear/Auth/Container/IMAP.php deleted file mode 100644 index 2768483..0000000 --- a/includes/pear/Auth/Container/IMAP.php +++ /dev/null @@ -1,210 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */ - -/** - * Storage driver for use against IMAP servers - * - * PHP versions 4 and 5 - * - * LICENSE: This source file is subject to version 3.01 of the PHP license - * that is available through the world-wide-web at the following URI: - * http://www.php.net/license/3_01.txt. If you did not receive a copy of - * the PHP License and are unable to obtain it through the web, please - * send a note to license@php.net so we can mail you a copy immediately. - * - * @category Authentication - * @package Auth - * @author Jeroen Houben <jeroen@terena.nl> - * @author Adam Ashley <aashley@php.net> - * @copyright 2001-2006 The PHP Group - * @license http://www.php.net/license/3_01.txt PHP License 3.01 - * @version CVS: $Id: IMAP.php 237449 2007-06-12 03:11:27Z aashley $ - * @link http://pear.php.net/package/Auth - * @since File available since Release 1.2.0 - */ - -/** - * Include Auth_Container base class - */ -require_once "Auth/Container.php"; - -/** - * Include PEAR class for error handling - */ -require_once "PEAR.php"; - -/** - * Storage driver for fetching login data from an IMAP server - * - * This class is based on LDAP containers, but it very simple. - * By default it connects to localhost:143 - * The constructor will first check if the host:port combination is - * actually reachable. This behaviour can be disabled. - * It then tries to create an IMAP stream (without opening a mailbox) - * If you wish to pass extended options to the connections, you may - * do so by specifying protocol options. - * - * To use this storage containers, you have to use the - * following syntax: - * - * <?php - * ... - * $params = array( - * 'host' => 'mail.example.com', - * 'port' => 143, - * ); - * $myAuth = new Auth('IMAP', $params); - * ... - * - * By default we connect without any protocol options set. However, some - * servers require you to connect with the notls or norsh options set. - * To do this you need to add the following value to the params array: - * 'baseDSN' => '/imap/notls/norsh' - * - * To connect to an SSL IMAP server: - * 'baseDSN' => '/imap/ssl' - * - * To connect to an SSL IMAP server with a self-signed certificate: - * 'baseDSN' => '/imap/ssl/novalidate-cert' - * - * Further options may be available and can be found on the php site at - * http://www.php.net/manual/function.imap-open.php - * - * @category Authentication - * @package Auth - * @author Jeroen Houben <jeroen@terena.nl> - * @author Cipriano Groenendal <cipri@campai.nl> - * @author Adam Ashley <aashley@php.net> - * @copyright 2001-2006 The PHP Group - * @license http://www.php.net/license/3_01.txt PHP License 3.01 - * @version Release: @package_version@ File: $Revision: 237449 $ - * @link http://pear.php.net/package/Auth - * @since Class available since Release 1.2.0 - */ -class Auth_Container_IMAP extends Auth_Container -{ - - // {{{ properties - - /** - * Options for the class - * @var array - */ - var $options = array(); - - // }}} - // {{{ Auth_Container_IMAP() [constructor] - - /** - * Constructor of the container class - * - * @param $params associative array with host, port, baseDSN, checkServer - * and userattr key - * @return object Returns an error object if something went wrong - * @todo Use PEAR Net_IMAP if IMAP extension not loaded - */ - function Auth_Container_IMAP($params) - { - if (!extension_loaded('imap')) { - return PEAR::raiseError('Cannot use IMAP authentication, ' - .'IMAP extension not loaded!', 41, PEAR_ERROR_DIE); - } - $this->_setDefaults(); - - // set parameters (if any) - if (is_array($params)) { - $this->_parseOptions($params); - } - - if ($this->options['checkServer']) { - $this->_checkServer($this->options['timeout']); - } - return true; - } - - // }}} - // {{{ _setDefaults() - - /** - * Set some default options - * - * @access private - */ - function _setDefaults() - { - $this->options['host'] = 'localhost'; - $this->options['port'] = 143; - $this->options['baseDSN'] = ''; - $this->options['checkServer'] = true; - $this->options['timeout'] = 20; - } - - // }}} - // {{{ _checkServer() - - /** - * Check if the given server and port are reachable - * - * @access private - */ - function _checkServer() { - $this->log('Auth_Container_IMAP::_checkServer() called.', AUTH_LOG_DEBUG); - $fp = @fsockopen ($this->options['host'], $this->options['port'], - $errno, $errstr, $this->options['timeout']); - if (is_resource($fp)) { - @fclose($fp); - } else { - $message = "Error connecting to IMAP server " - . $this->options['host'] - . ":" . $this->options['port']; - return PEAR::raiseError($message, 41); - } - } - - // }}} - // {{{ _parseOptions() - - /** - * Parse options passed to the container class - * - * @access private - * @param array - */ - function _parseOptions($array) - { - foreach ($array as $key => $value) { - $this->options[$key] = $value; - } - } - - // }}} - // {{{ fetchData() - - /** - * Try to open a IMAP stream using $username / $password - * - * @param string Username - * @param string Password - * @return boolean - */ - function fetchData($username, $password) - { - $this->log('Auth_Container_IMAP::fetchData() called.', AUTH_LOG_DEBUG); - $dsn = '{'.$this->options['host'].':'.$this->options['port'].$this->options['baseDSN'].'}'; - $conn = @imap_open ($dsn, $username, $password, OP_HALFOPEN); - if (is_resource($conn)) { - $this->log('Successfully connected to IMAP server.', AUTH_LOG_DEBUG); - $this->activeUser = $username; - @imap_close($conn); - return true; - } else { - $this->log('Connection to IMAP server failed.', AUTH_LOG_DEBUG); - $this->activeUser = ''; - return false; - } - } - - // }}} - -} -?> |
