67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * An interface for OpenID extensions.
 | 
						|
 *
 | 
						|
 * @package OpenID
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * Require the Message implementation.
 | 
						|
 */
 | 
						|
require_once 'Auth/OpenID/Message.php';
 | 
						|
 | 
						|
/**
 | 
						|
 * A base class for accessing extension request and response data for
 | 
						|
 * the OpenID 2 protocol.
 | 
						|
 *
 | 
						|
 * @package OpenID
 | 
						|
 */
 | 
						|
class Auth_OpenID_Extension {
 | 
						|
    /**
 | 
						|
     * ns_uri: The namespace to which to add the arguments for this
 | 
						|
     * extension
 | 
						|
     */
 | 
						|
    var $ns_uri = null;
 | 
						|
    var $ns_alias = null;
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get the string arguments that should be added to an OpenID
 | 
						|
     * message for this extension.
 | 
						|
     */
 | 
						|
    function getExtensionArgs()
 | 
						|
    {
 | 
						|
        return null;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Add the arguments from this extension to the provided message.
 | 
						|
     *
 | 
						|
     * Returns the message with the extension arguments added.
 | 
						|
     */
 | 
						|
    function toMessage($message, $request = null)
 | 
						|
    {
 | 
						|
        $implicit = $message->isOpenID1();
 | 
						|
        $added = $message->namespaces->addAlias($this->ns_uri,
 | 
						|
                                                $this->ns_alias,
 | 
						|
                                                $implicit);
 | 
						|
 | 
						|
        if ($added === null) {
 | 
						|
            if ($message->namespaces->getAlias($this->ns_uri) !=
 | 
						|
                $this->ns_alias) {
 | 
						|
                return null;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        if ($request !== null) {
 | 
						|
            $message->updateArgs($this->ns_uri,
 | 
						|
                                 $this->getExtensionArgs($request));
 | 
						|
        } else {
 | 
						|
            $message->updateArgs($this->ns_uri,
 | 
						|
                                 $this->getExtensionArgs());
 | 
						|
        }
 | 
						|
        return $message;
 | 
						|
    }
 | 
						|
}
 | 
						|
 |