summaryrefslogtreecommitdiffstats
path: root/examples/server/lib/actions.php
diff options
context:
space:
mode:
authortailor <cygnus@janrain.com>2007-03-22 18:22:00 +0000
committertailor <cygnus@janrain.com>2007-03-22 18:22:00 +0000
commit8ab6cc345e221f1e931597faeadfd345baf3ffda (patch)
treecd2c33ecd8bd5602489d1d817fd1cc5cbaddb412 /examples/server/lib/actions.php
parent900ae4d1d1cbdda4ce918ca8a813d1364fd73907 (diff)
downloadphp-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.php54
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