summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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'));
+ }
}