summaryrefslogtreecommitdiffstats
path: root/examples/server/lib/render
diff options
context:
space:
mode:
Diffstat (limited to 'examples/server/lib/render')
-rw-r--r--examples/server/lib/render/about.php58
-rw-r--r--examples/server/lib/render/login.php65
-rw-r--r--examples/server/lib/render/sites.php69
-rw-r--r--examples/server/lib/render/trust.php29
4 files changed, 221 insertions, 0 deletions
diff --git a/examples/server/lib/render/about.php b/examples/server/lib/render/about.php
new file mode 100644
index 0000000..503043b
--- /dev/null
+++ b/examples/server/lib/render/about.php
@@ -0,0 +1,58 @@
+<?php
+
+require_once "lib/session.php";
+require_once "lib/render.php";
+
+define('about_error_template',
+ '<div class="error">
+An error occurred when processing your request:
+<br />
+%s
+</div>');
+
+define('about_body',
+ '<p>
+ This is an <a href="http://www.openid.net/">OpenID</a> server
+ endpoint. This server is built on the <a
+ href="http://www.openidenabled.com/libraries/php">JanRain PHP OpenID
+ library</a>. Since OpenID consumer sites will need to directly contact this
+ server, it must be accessible over the Internet (not behind a firewall).
+</p>
+<p>
+ To use this server, you will have to set up a URL to use as an identifier.
+ Insert the following markup into the <code>&lt;head&gt;</code> of the HTML
+ document at that URL:
+</p>
+<pre>&lt;link rel="openid.server" href="%s" /&gt;</pre>
+<p>
+ Then configure this server so that you can log in with that URL. Once you
+ have configured the server, and marked up your identity URL, you can verify
+ that it is working by using the <a href="http://www.openidenabled.com/"
+ >openidenabled.com</a>
+ <a href="http://www.openidenabled.com/resources/openid-test/checkup">OpenID
+ Checkup tool</a>:
+ <form method="post"
+ action="http://www.openidenabled.com/resources/openid-test/checkup/start">
+ <label for="checkup">OpenID URL:
+ </label><input id="checkup" type="text" name="openid_url" />
+ <input type="submit" value="Check" />
+ </form>
+</p>
+');
+
+/**
+ * Render the about page, potentially with an error message
+ */
+function about_render($error=false, $internal=true)
+{
+ $headers = array();
+ $body = sprintf(about_body, buildURL());
+ if ($error) {
+ $headers[] = $internal ? http_internal_error : http_bad_request;
+ $body .= sprintf(about_error_template, htmlspecialchars($error));
+ }
+ $current_user = getLoggedInUser();
+ return page_render($body, $current_user, 'OpenID Server Endpoint');
+}
+
+?> \ No newline at end of file
diff --git a/examples/server/lib/render/login.php b/examples/server/lib/render/login.php
new file mode 100644
index 0000000..9e8f370
--- /dev/null
+++ b/examples/server/lib/render/login.php
@@ -0,0 +1,65 @@
+<?php
+
+require_once "lib/session.php";
+require_once "lib/render.php";
+
+define('login_form_pat',
+ '<div class="form">
+ <p>
+ Enter your identity URL and password into this form to log in to
+ this server. This server must be configured to accept your identity URL.
+ </p>
+
+ <form method="post" action="%s">
+ <table>
+ <tr>
+ <th><label for="openid_url">OpenID URL:</label></th>
+ <td><input type="text" name="openid_url"
+ value="%s" id="openid_url" /></td>
+ </tr>
+ <tr>
+ <th><label for="password">Password:</label></th>
+ <td><input type="password" name="password" id="password" /></td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <input type="submit" value="Log in" />
+ <input type="submit" name="cancel" value="Cancel" />
+ </td>
+ </tr>
+ </table>
+ </form>
+</div>
+');
+
+define('login_needed_pat',
+ 'You must be logged in as %s to approve this request.');
+
+function login_render($errors=null, $input=null, $needed=null)
+{
+ $current_user = getLoggedInUser();
+ if ($input === null) {
+ $input = $current_user;
+ }
+ if ($needed) {
+ $errors[] = sprintf(login_needed_pat, link_render($needed));
+ }
+
+ $esc_input = htmlspecialchars($input, ENT_QUOTES);
+ $login_url = buildURL('login', true);
+ $body = sprintf(login_form_pat, $login_url, $esc_input);
+ if ($errors) {
+ $body = loginError_render($errors) . $body;
+ }
+ return page_render($body, $current_user, 'Log In', null, true);
+}
+
+function loginError_render($errors)
+{
+ $text = '';
+ foreach ($errors as $error) {
+ $text .= sprintf("<li>%s</li>\n", $error);
+ }
+ return sprintf("<ul class=\"error\">\n%s</ul>\n", $text);
+}
+?> \ No newline at end of file
diff --git a/examples/server/lib/render/sites.php b/examples/server/lib/render/sites.php
new file mode 100644
index 0000000..63d1245
--- /dev/null
+++ b/examples/server/lib/render/sites.php
@@ -0,0 +1,69 @@
+<?php
+
+require_once "lib/session.php";
+
+define('sites_form',
+ '<div class="form">
+<p>These sites have been approved for this session:</p>
+<form method="post" action="%s">
+<table>
+<tbody>
+%s
+</tbody>
+</table>
+<input type="submit" value="Remove selected" />
+</form>
+</div>
+');
+
+define('sites_empty_message',
+ '<p>
+ No sites are remembered for this session. When you authenticate with a site,
+ you can choose to add it to this list by choosing <q>Remember this
+ decision</q>.
+</p>
+<p>%s</p>
+');
+
+define('sites_row',
+ '<tr>
+<td><input type="checkbox" name=%s value="%s" id=%s /></td>
+<td><label for=%s>%s %s</label></td>
+</tr>');
+
+function siteListRow_render($i, $site)
+{
+ $esc_site = htmlspecialchars($site, ENT_QUOTES);
+ if ($trusted) {
+ $trust = 'Trust';
+ } else {
+ $trust = 'Do not trust';
+ }
+ $id = sprintf('"site%s"', $i);
+ return sprintf(sites_row, $id, $esc_site, $id, $id, $trust, $esc_site);
+}
+
+function siteList_render($sites)
+{
+ $rows = '';
+ $i = 0;
+ foreach ($sites as $site => $trusted) {
+ $rows .= siteListRow_render($i, $site);
+ $i += 1;
+ }
+ return $rows;
+}
+
+function sites_render($sites)
+{
+ if ($sites) {
+ $rows = siteList_render($sites);
+ $form = sprintf(sites_form, buildURL('sites'), $rows);
+ $body = $pre . $form;
+ } else {
+ $body = sprintf(sites_empty_message, link_render(buildURL(''), 'Return home'));
+ }
+ return page_render($body, getLoggedInUser(), 'Remembered Sites');
+}
+
+?> \ No newline at end of file
diff --git a/examples/server/lib/render/trust.php b/examples/server/lib/render/trust.php
new file mode 100644
index 0000000..c00803c
--- /dev/null
+++ b/examples/server/lib/render/trust.php
@@ -0,0 +1,29 @@
+<?php
+
+require_once "lib/session.php";
+require_once "lib/render.php";
+
+define('trust_form_pat',
+ '<div class="form">
+ <p>Do you wish to confirm your identity URL (<code>%s</code>) with <code>%s</code>?</p>
+ <form method="post" action="%s">
+ <input type="checkbox" name="remember" value="on" id="remember"><label
+ for="remember">Remember this decision</label>
+ <br />
+ <input type="submit" name="trust" value="Confirm" />
+ <input type="submit" value="Do not confirm" />
+ </form>
+</div>
+');
+
+function trust_render($info)
+{
+ $current_user = getLoggedInUser();
+ $lnk = link_render($current_user);
+ $trust_root = htmlspecialchars($info->getTrustRoot());
+ $trust_url = buildURL('trust', true);
+ $form = sprintf(trust_form_pat, $lnk, $trust_root, $trust_url);
+ return page_render($form, $current_user, 'Trust This Site');
+}
+
+?> \ No newline at end of file