if (!$library->discover($request->get('openid_identifier'))) { $error = $library->getError(); break; } //execute post-discovery filter if any extension exist $extension =& Openid_Utils::load('extension'); $ret = $extension->execute('preFilter', $library->getAuthRequest()); if ($ret === true) { //skip filter } else { if ($ret === false) { $error = $extension->getError(); break; } else { //Check OP Endpoint URL $filter =& Openid_Utils::load('filter'); if (!$filter->validateEndpoint($library->getEndpoint())) { $error = _MD_OPENID_ERROR_MAYNOT . $filter->getError(); break; } } } // Redirect the user to the OpenID server for authentication. // Store the token for this authentication so we can verify the // response. if ($library->buildRedirect()) { if ($isExistFrompage) { $parsed = parse_url(XOOPS_URL); setcookie('openid_frompage', $request->get('frompage'), time() + 300, @$parsed['path'] . '/'); } if ($_SERVER['REQUEST_METHOD'] == 'POST') {
break; case 'link': $post->accept('pass'); $user =& $member->checkLogin($post); break; default: Openid_Utils::reset(); exit($xoopsConfig['debug_mode'] ? (string) __LINE__ : ''); } if (is_object($user)) { if ($xoopsModuleConfig['mode_policy'] == 0) { $openid->set('omode', $post->get('omode')); } else { $openid->set('omode', $xoopsModuleConfig['mode_policy']); } $identifier_handler =& Openid_Utils::load('identifier'); if ($identifier_handler->register($openid, $user->getVar('uid'))) { $member->loginSuccess($user); } else { if ($op == 'register') { //rollback $member->deleteUser($user); } Openid_Utils::redirect($identifier_handler->getError()); } } else { require XOOPS_ROOT_PATH . '/header.php'; $xoopsOption['template_main'] = 'openid_new_user.html'; $xoopsTpl->assign('error', @$error ? $error : $member->getError()); $xoopsTpl->assign('unam', $post->get4Show('uname')); if ($op == 'register') {
$timezone_offset = $tz['offset'] / 3600; break; } } } } $xoopsTpl->assign('timezone_offset', $timezone_offset); if (!$member->validateUname($uname)) { $xoopsTpl->assign('error', $member->getError()); } } else { $xoopsTpl->assign('allow_register', false); } if ($xoopsModuleConfig['mode_policy'] == 0) { $options = array(1 => _MD_OPENID_PRIVATE, 2 => _MD_OPENID_OPEN2MEMBER, 3 => _MD_OPENID_PUBLIC); $xoopsTpl->assign('options', $options); $xoopsTpl->assign('omode', OPENID_IDENTIFIER_PUBLIC); } require XOOPS_ROOT_PATH . '/footer.php'; exit; } while (false); // Redirect user to OpenID login form for inputting "User-supplied Identifier" again. /* @var $cookie Openid_Context */ $cookie = Openid_Utils::load('context'); $cookie->accept('openid_frompage', 'string', 'cookie'); Openid_Utils::reset(); $url = XOOPS_URL . '/modules/openid/?verify=1'; if ($frompage = $cookie->get('openid_frompage')) { $url .= '&frompage=' . rawurlencode($frompage); } redirect_header($url, 5, $error);
function viewDefault() { global $xoopsUser, $xoopsModuleConfig, $xoopsTpl; require_once XOOPS_ROOT_PATH . '/modules/openid/class/utils.php'; if (@$_GET['frompage']) { $request =& Openid_Utils::load('context'); $request->accept('frompage', 'string', 'get'); $xoopsTpl->assign('frompage', $request->get4show('frompage')); } elseif (is_object($xoopsUser)) { $openids = array(); $identifiers =& $this->_handler->getByUid($xoopsUser->getVar('uid')); foreach ($identifiers as $identifier) { $openid = array(); $openid['id'] = $identifier->get4Show('id'); $openid['displayid'] = $identifier->get4Show('displayid'); if ($xoopsModuleConfig['mode_policy'] == 0) { $openid['mode'] = $identifier->get('omode'); } else { $openid['mode'] = $identifier->get('omode') ? 1 : 0; } $openid['oldmode'] = $identifier->get('omode'); $openids[] =& $openid; unset($openid); } $xoopsTpl->assign('openids', $openids); $xoopsTpl->assign('options', $this->getModeList()); } $handler_buttons =& Openid_Utils::load('buttons'); $xoopsTpl->assign_by_ref('buttons', $handler_buttons->getObjects()); header('X-XRDS-Location: ' . $this->_url . '?op=xrds'); }