summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Andrews <candrews@integralblue.com>2010-09-05 17:43:29 -0400
committerCraig Andrews <candrews@integralblue.com>2010-09-07 13:45:52 -0400
commit8d54809c3561bf56afcdb401ef3c009e9a180cbc (patch)
tree3892a745ce6432901332531a600d41e280c1a0e3
parent3dd734b2c3ea49c55467cfbfd4b3a5fb38456e87 (diff)
move xrd and hostmeta out of the OStatus plugin and into core
add event for setting up hostmeta, and use them in the OStatus plugin
-rw-r--r--EVENTS.txt8
-rw-r--r--actions/hostmeta.php (renamed from plugins/OStatus/actions/hostmeta.php)23
-rw-r--r--index.php2
-rw-r--r--lib/router.php2
-rw-r--r--lib/xrd.php (renamed from plugins/OStatus/lib/xrd.php)0
-rw-r--r--plugins/OStatus/OStatusPlugin.php10
6 files changed, 35 insertions, 10 deletions
diff --git a/EVENTS.txt b/EVENTS.txt
index 17e7d62b6..8b7448d67 100644
--- a/EVENTS.txt
+++ b/EVENTS.txt
@@ -551,6 +551,12 @@ EndPublicXRDS: End XRDS output (right before the closing XRDS tag)
- $action: the current action
- &$xrdsoutputter - XRDSOutputter object to write to
+StartHostMetaLinks: Start /.well-known/host-meta links
+- &links: array containing the links elements to be written
+
+EndHostMetaLinks: End /.well-known/host-meta links
+- &links: array containing the links elements to be written
+
StartCheckPassword: Check a username/password
- $nickname: The nickname to check
- $password: The password to check
@@ -1095,4 +1101,4 @@ StartShowPageTitle: when beginning to show the page title <h1>
- $action: action being shown
EndShowPageTitle: when done showing the page title <h1>
-- $action: action being shown \ No newline at end of file
+- $action: action being shown
diff --git a/plugins/OStatus/actions/hostmeta.php b/actions/hostmeta.php
index 8ca07f916..be73665f2 100644
--- a/plugins/OStatus/actions/hostmeta.php
+++ b/actions/hostmeta.php
@@ -18,8 +18,10 @@
*/
/**
- * @package OStatusPlugin
+ * @category Action
+ * @package StatusNet
* @maintainer James Walker <james@status.net>
+ * @author Craig Andrews <candrews@integralblue.com>
*/
if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
@@ -27,19 +29,28 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
class HostMetaAction extends Action
{
+ /**
+ * Is read only?
+ *
+ * @return boolean true
+ */
+ function isReadOnly()
+ {
+ return true;
+ }
+
function handle()
{
parent::handle();
$domain = common_config('site', 'server');
- $url = common_local_url('userxrd');
- $url.= '?uri={uri}';
$xrd = new XRD();
$xrd->host = $domain;
- $xrd->links[] = array('rel' => Discovery::LRDD_REL,
- 'template' => $url,
- 'title' => array('Resource Descriptor'));
+
+ if(Event::handle('StartHostMetaLinks', array(&$xrd->links))) {
+ Event::handle('EndHostMetaLinks', array(&$xrd->links));
+ }
header('Content-type: application/xrd+xml');
print $xrd->toXML();
diff --git a/index.php b/index.php
index 3efe5c8e4..21e222e3b 100644
--- a/index.php
+++ b/index.php
@@ -204,7 +204,7 @@ function checkMirror($action_obj, $args)
function isLoginAction($action)
{
- static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd');
+ static $loginActions = array('login', 'recoverpassword', 'api', 'doc', 'register', 'publicxrds', 'otp', 'opensearch', 'rsd', 'hostmeta');
$login = null;
diff --git a/lib/router.php b/lib/router.php
index ca3c2e880..86dd116c8 100644
--- a/lib/router.php
+++ b/lib/router.php
@@ -151,6 +151,8 @@ class Router
$m->connect('main/xrds',
array('action' => 'publicxrds'));
+ $m->connect('.well-known/host-meta',
+ array('action' => 'hostmeta'));
// these take a code
diff --git a/plugins/OStatus/lib/xrd.php b/lib/xrd.php
index 145cd64cb..145cd64cb 100644
--- a/plugins/OStatus/lib/xrd.php
+++ b/lib/xrd.php
diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php
index 77bc9872b..dd1509954 100644
--- a/plugins/OStatus/OStatusPlugin.php
+++ b/plugins/OStatus/OStatusPlugin.php
@@ -50,8 +50,6 @@ class OStatusPlugin extends Plugin
function onRouterInitialized($m)
{
// Discovery actions
- $m->connect('.well-known/host-meta',
- array('action' => 'hostmeta'));
$m->connect('main/xrd',
array('action' => 'userxrd'));
$m->connect('main/ownerxrd',
@@ -1012,4 +1010,12 @@ class OStatusPlugin extends Plugin
return true;
}
+
+ function onStartHostMetaLinks(&$links) {
+ $url = common_local_url('userxrd');
+ $url.= '?uri={uri}';
+ $links[] = array('rel' => Discovery::LRDD_REL,
+ 'template' => $url,
+ 'title' => array('Resource Descriptor'));
+ }
}