Example #1
0
 function &register(&$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);
     }
 }
Example #2
0
 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') {
Example #3
0
}
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);
Example #4
0
                        $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);
Example #5
0
 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');
 }