summaryrefslogtreecommitdiff
path: root/includes/pear/Auth/Container/SAP.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/pear/Auth/Container/SAP.php')
-rw-r--r--includes/pear/Auth/Container/SAP.php179
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;
- }
-
- // }}}
-
-}
-
-?>