function ®ister(&$openid, &$post) { $ret = false; $uname = $post->get('uname'); $email = $post->get('email'); if (!$this->validateUname($uname) || !$this->validateEmail($email)) { return $ret; } $member_handler =& xoops_gethandler('member'); $user =& $member_handler->createUser(); $user->setVar('uname', $uname); $user->setVar('email', $email); $user->setVar('user_regdate', time()); $user->setVar('pass', '*'); $user->setVar('user_mailok', 0); $user->setVar('level', 1); $user->setVar('user_avatar', 'blank.gif'); $user->setVar('last_login', time()); $tz = $post->get('timezone_offset'); if ($tz === FALSE) { $user->setVar('timezone_offset', $GLOBALS['xoopsConfig']['default_TZ']); } else { $user->setVar('timezone_offset', $tz); } if ($member_handler->insertUser($user, true)) { // Now, add the user to the group. foreach ($openid->get('gid') as $gid) { $member_handler->addUserToGroup($gid, $user->getVar('uid')); } return $user; } else { Openid_Utils::redirect(_MD_OPENID_ERROR_REGISTERNG); } }
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') {
} 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') { $email = $post->get4Show('email'); $timezone_offset = $post->get4Show('timezone_offset'); } else { $email = $openid->get4Show('email'); $timezone_offset = $xoopsConfig['default_TZ']; } $xoopsTpl->assign('email', $email); $xoopsTpl->assign('timezone_offset', $timezone_offset);
$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'); }