diff options
Diffstat (limited to 'includes/pear/Auth/Container/SAP.php')
| -rw-r--r-- | includes/pear/Auth/Container/SAP.php | 179 |
1 files changed, 0 insertions, 179 deletions
diff --git a/includes/pear/Auth/Container/SAP.php b/includes/pear/Auth/Container/SAP.php deleted file mode 100644 index 58ce168..0000000 --- a/includes/pear/Auth/Container/SAP.php +++ /dev/null @@ -1,179 +0,0 @@ -<?php -/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 foldmethod=marker: */ - -/** - * Storage driver for use against a SAP system using the SAPRFC PHP extension. - * - * Requires the SAPRFC ext available at http://saprfc.sourceforge.net/ - * - * PHP version 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 Stoyan Stefanov <ssttoo@gmail.com> - * @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: SAP.php 302205 2010-08-14 14:08:08Z clockwerx $ - * @link http://pear.php.net/package/Auth - * @since File available since Release 1.4.0 - */ - -/** - * Include Auth_Container base class - */ -require_once 'Auth/Container.php'; -/** - * Include PEAR for error handling - */ -require_once 'PEAR.php'; - -/** - * Performs authentication against a SAP system using the SAPRFC PHP extension. - * - * When the option GETSSO2 is TRUE (default) - * the Single Sign-On (SSO) ticket is retrieved - * and stored as an Auth attribute called 'sap' - * in order to be reused for consecutive connections. - * - * @category Authentication - * @package Auth - * @author Stoyan Stefanov <ssttoo@gmail.com> - * @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: 302205 $ - * @since Class available since Release 1.4.0 - */ -class Auth_Container_SAP extends Auth_Container { - - // {{{ properties - - /** - * @var array Default options - */ - var $options = array( - 'CLIENT' => '000', - 'LANG' => 'EN', - 'GETSSO2' => true, - ); - - // }}} - // {{{ Auth_Container_SAP() - - /** - * Class constructor. Checks that required options - * are present and that the SAPRFC extension is loaded - * - * Options that can be passed and their defaults: - * <pre> - * array( - * 'ASHOST' => "", - * 'SYSNR' => "", - * 'CLIENT' => "000", - * 'GWHOST' =>"", - * 'GWSERV' =>"", - * 'MSHOST' =>"", - * 'R3NAME' =>"", - * 'GROUP' =>"", - * 'LANG' =>"EN", - * 'TRACE' =>"", - * 'GETSSO2'=> true - * ) - * </pre> - * - * @param array array of options. - * @return void - */ - function Auth_Container_SAP($options) - { - $saprfc_loaded = PEAR::loadExtension('saprfc'); - if (!$saprfc_loaded) { - return PEAR::raiseError('Cannot use SAP authentication, ' - .'SAPRFC extension not loaded!'); - } - if (empty($options['R3NAME']) && empty($options['ASHOST'])) { - return PEAR::raiseError('R3NAME or ASHOST required for authentication'); - } - $this->options = array_merge($this->options, $options); - } - - // }}} - // {{{ fetchData() - - /** - * Performs username and password check - * - * @param string Username - * @param string Password - * @return boolean TRUE on success (valid user), FALSE otherwise - */ - function fetchData($username, $password) - { - $this->log('Auth_Container_SAP::fetchData() called.', AUTH_LOG_DEBUG); - $connection_options = $this->options; - $connection_options['USER'] = $username; - $connection_options['PASSWD'] = $password; - $rfc = saprfc_open($connection_options); - if (!$rfc) { - $message = "Couldn't connect to the SAP system."; - $error = $this->getError(); - if ($error['message']) { - $message .= ': ' . $error['message']; - } - PEAR::raiseError($message, null, null, null, @$error['all']); - return false; - } else { - if (!empty($this->options['GETSSO2'])) { - $this->log('Attempting to retrieve SSO2 ticket.', AUTH_LOG_DEBUG); - if ($ticket = @saprfc_get_ticket($rfc)) { - $this->options['MYSAPSSO2'] = $ticket; - unset($this->options['GETSSO2']); - $this->_auth_obj->setAuthData('sap', $this->options); - } else { - PEAR::raiseError("SSO ticket retrieval failed"); - } - } - @saprfc_close($rfc); - return true; - } - - } - - // }}} - // {{{ getError() - - /** - * Retrieves the last error from the SAP connection - * and returns it as an array. - * - * @return array Array of error information - */ - function getError() - { - - $error = array(); - $sap_error = saprfc_error(); - if (empty($err)) { - return $error; - } - $err = explode("n", $sap_error); - foreach ($err AS $line) { - $item = explode(':', $line); - $error[strtolower(trim($item[0]))] = trim($item[1]); - } - $error['all'] = $sap_error; - return $error; - } - - // }}} - -} - -?> |
