diff options
Diffstat (limited to 'Auth/OpenID/Message.php')
-rw-r--r-- | Auth/OpenID/Message.php | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/Auth/OpenID/Message.php b/Auth/OpenID/Message.php index a9a7d21..cdc4d65 100644 --- a/Auth/OpenID/Message.php +++ b/Auth/OpenID/Message.php @@ -74,7 +74,7 @@ function Auth_OpenID_registerNamespaceAlias($namespace_uri, $alias) return false; } - if (in_array($alias, $Auth_OpenID_registered_aliases)) { + if (in_array($alias, array_keys($Auth_OpenID_registered_aliases))) { return false; } @@ -83,6 +83,24 @@ function Auth_OpenID_registerNamespaceAlias($namespace_uri, $alias) } /** + * Removes a (namespace_uri, alias) registration from the global + * namespace alias map. Returns true if the removal succeeded; false + * if not (if the mapping did not exist). + */ +function Auth_OpenID_removeNamespaceAlias($namespace_uri, $alias) +{ + global $Auth_OpenID_registered_aliases; + + if (Auth_OpenID::arrayGet($Auth_OpenID_registered_aliases, + $alias) === $namespace_uri) { + unset($Auth_OpenID_registered_aliases[$alias]); + return true; + } + + return false; +} + +/** * An Auth_OpenID_Mapping maintains a mapping from arbitrary keys to * arbitrary values. (This is unlike an ordinary PHP array, whose * keys may be only simple scalars.) |