} $response->set('omode', $mode); if ($identifier_handler->register($response, $uid)) { $message = 'OpenID is added successfully.'; } else { $error = 'Fail in registration of OpenID<br />' . $identifier_handler->getError(); break; } } } /* @var $member Openid_Member */ $member =& Openid_Utils::load('member'); if ($uid) { if (is_object($xoopsUser)) { if ($xoopsUser->getVar('uid') == $uid) { Openid_Utils::redirect($message, true); } else { //This is an undesirable case. However, it is not possible to refuse. $member->logout($xoopsUser); } } if ($user =& $member->getUser($uid)) { $member->loginSuccess($user); } else { $error = 'This OpenID may be invalid.<br />' . $member->getError(); break; } } // Display regsteration panel $_SESSION['openid_response'] = rawurlencode(serialize($response)); $displayId = $response->get4Show('displayId');
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 (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);