diff options
author | tailor <cygnus@janrain.com> | 2007-03-22 18:22:00 +0000 |
---|---|---|
committer | tailor <cygnus@janrain.com> | 2007-03-22 18:22:00 +0000 |
commit | 8ab6cc345e221f1e931597faeadfd345baf3ffda (patch) | |
tree | cd2c33ecd8bd5602489d1d817fd1cc5cbaddb412 /examples/server/lib/actions.php | |
parent | 900ae4d1d1cbdda4ce918ca8a813d1364fd73907 (diff) | |
download | php-openid-8ab6cc345e221f1e931597faeadfd345baf3ffda.zip php-openid-8ab6cc345e221f1e931597faeadfd345baf3ffda.tar.gz php-openid-8ab6cc345e221f1e931597faeadfd345baf3ffda.tar.bz2 |
[project @ Example server overhaul; add OpenID 2 features]
Diffstat (limited to 'examples/server/lib/actions.php')
-rw-r--r-- | examples/server/lib/actions.php | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/examples/server/lib/actions.php b/examples/server/lib/actions.php index f38637f..b2a1a84 100644 --- a/examples/server/lib/actions.php +++ b/examples/server/lib/actions.php @@ -5,8 +5,8 @@ require_once "lib/session.php"; require_once "lib/render.php"; require_once "lib/render/login.php"; -require_once "lib/render/sites.php"; require_once "lib/render/idpage.php"; +require_once "lib/render/idpXrds.php"; require_once "Auth/OpenID.php"; @@ -15,6 +15,8 @@ require_once "Auth/OpenID.php"; */ function action_default() { + header('X-XRDS-Location: '.buildURL('idpXrds')); + $server =& getServer(); $method = $_SERVER['REQUEST_METHOD']; $request = null; @@ -36,17 +38,20 @@ function action_default() if (in_array($request->mode, array('checkid_immediate', 'checkid_setup'))) { - if (isTrusted($request->identity, $request->trust_root)) { - $response =& $request->answer(true); - $sreg = getSreg($request->identity); - if (is_array($sreg)) { - foreach ($sreg as $k => $v) { - $response->addField('sreg', $k, - $v); - } + if ($request->idSelect()) { + // Perform IDP-driven identifier selection + if ($request->mode == 'checkid_immediate') { + $response =& $request->answer(false); + } else { + return trust_render($request); } + } else if ((!$request->identity) && + (!$request->idSelect())) { + // No identifier used or desired; display a page saying + // so. + return noIdentifier_render(); } else if ($request->immediate) { - $response =& $request->answer(false, getServerURL()); + $response =& $request->answer(false, buildURL()); } else { if (!getLoggedInUser()) { return login_render(); @@ -131,36 +136,17 @@ function action_trust() { $info = getRequestInfo(); $trusted = isset($_POST['trust']); - if ($info && isset($_POST['remember'])) { - $sites = getSessionSites(); - $sites[$info->trust_root] = $trusted; - setSessionSites($sites); - } - return doAuth($info, $trusted, true); + return doAuth($info, $trusted, true, @$_POST['idSelect']); } -function action_sites() +function action_idpage() { - $sites = getSessionSites(); - if ($_SERVER['REQUEST_METHOD'] == 'POST') { - if (isset($_POST['forget'])) { - $sites = null; - setSessionSites($sites); - } elseif (isset($_POST['remove'])) { - foreach ($_POST as $k => $v) { - if (preg_match('/^site[0-9]+$/', $k) && isset($sites[$v])) { - unset($sites[$v]); - } - } - setSessionSites($sites); - } - } - return sites_render($sites); + return idpage_render(getLoggedInUser()); } -function action_idpage() +function action_idpXrds() { - return idpage_render(getLoggedInUser()); + return idpXrds_render(); } ?>
\ No newline at end of file |