Auth_OpenID_NamespaceMap::addAlias PHP Method

addAlias() public method

public addAlias ( $namespace_uri, $desired_alias, $implicit = false )
    function addAlias($namespace_uri, $desired_alias, $implicit = false)
    {
        // Add an alias from this namespace URI to the desired alias
        global $Auth_OpenID_OPENID_PROTOCOL_FIELDS;
        // Check that desired_alias is not an openid protocol field as
        // per the spec.
        if (in_array($desired_alias, $Auth_OpenID_OPENID_PROTOCOL_FIELDS)) {
            Auth_OpenID::log("\"%s\" is not an allowed namespace alias", $desired_alias);
            return null;
        }
        // Check that desired_alias does not contain a period as per
        // the spec.
        if (strpos($desired_alias, '.') !== false) {
            Auth_OpenID::log('"%s" must not contain a dot', $desired_alias);
            return null;
        }
        // Check that there is not a namespace already defined for the
        // desired alias
        $current_namespace_uri = $this->alias_to_namespace->get($desired_alias);
        if ($current_namespace_uri !== null && $current_namespace_uri != $namespace_uri) {
            Auth_OpenID::log('Cannot map "%s" because previous mapping exists', $namespace_uri);
            return null;
        }
        // Check that there is not already a (different) alias for
        // this namespace URI
        $alias = $this->namespace_to_alias->get($namespace_uri);
        if ($alias !== null && $alias != $desired_alias) {
            Auth_OpenID::log('Cannot map %s to alias %s. ' . 'It is already mapped to alias %s', $namespace_uri, $desired_alias, $alias);
            return null;
        }
        assert(Auth_OpenID_NULL_NAMESPACE === $desired_alias || is_string($desired_alias));
        $this->alias_to_namespace->set($desired_alias, $namespace_uri);
        $this->namespace_to_alias->set($namespace_uri, $desired_alias);
        if ($implicit) {
            array_push($this->implicit_namespaces, $namespace_uri);
        }
        return $desired_alias;
    }

Usage Example

Ejemplo n.º 1
0
 function test_onealias()
 {
     $nsm = new Auth_OpenID_NamespaceMap();
     $uri = 'http://example.com/foo';
     $alias = "foo";
     $nsm->addAlias($uri, $alias);
     $this->assertTrue($nsm->getNamespaceURI($alias) == $uri);
     $this->assertTrue($nsm->getAlias($uri) == $alias);
 }
All Usage Examples Of Auth_OpenID_NamespaceMap::addAlias