From 44d22fc8632ab51aa750e5307b1e3a506c8226ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Hojtsy?= Date: Mon, 15 Oct 2007 09:40:42 +0000 Subject: #156886 by edgauthier: fix OpenID delegation --- modules/openid/openid.module | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'modules/openid/openid.module') diff --git a/modules/openid/openid.module b/modules/openid/openid.module index a0bc93324..d5727954a 100644 --- a/modules/openid/openid.module +++ b/modules/openid/openid.module @@ -157,7 +157,18 @@ function openid_begin($claimed_id, $return_to = '', $form_values = array()) { // Now that there is an association created, move on // to request authentication from the IdP - $identity = (!empty($services[0]['delegate'])) ? $services[0]['delegate'] : $claimed_id; + // First check for LocalID. If not found, check for Delegate. Fall + // back to $claimed_id if neither is found. + if (!empty($services[0]['localid'])) { + $identity = $services[0]['localid']; + } + else if (!empty($services[0]['delegate'])) { + $identity = $services[0]['delegate']; + } + else { + $identity = $claimed_id; + } + if (isset($services[0]['types']) && is_array($services[0]['types']) && in_array(OPENID_NS_2_0 .'/server', $services[0]['types'])) { $identity = 'http://openid.net/identifier_select/2.0'; } -- cgit v1.2.3