]> source.dussan.org Git - nextcloud-server.git/commitdiff
adding webfinger app
authorMichiel@unhosted <michiel@unhosted.org>
Sun, 11 Sep 2011 22:12:34 +0000 (00:12 +0200)
committerMichiel@unhosted <michiel@unhosted.org>
Sun, 11 Sep 2011 22:12:34 +0000 (00:12 +0200)
.well-known [new symlink]
apps/user_webfinger/.htaccess [new file with mode: 0644]
apps/user_webfinger/appinfo/app.php [new file with mode: 0644]
apps/user_webfinger/appinfo/info.xml [new file with mode: 0644]
apps/user_webfinger/host-meta [new file with mode: 0644]
apps/user_webfinger/host-meta.php [new file with mode: 0644]
apps/user_webfinger/webfinger.php [new file with mode: 0644]

diff --git a/.well-known b/.well-known
new file mode 120000 (symlink)
index 0000000..2587475
--- /dev/null
@@ -0,0 +1 @@
+apps/user_webfinger/
\ No newline at end of file
diff --git a/apps/user_webfinger/.htaccess b/apps/user_webfinger/.htaccess
new file mode 100644 (file)
index 0000000..4d4d2e9
--- /dev/null
@@ -0,0 +1,3 @@
+RewriteEngine On
+RewriteBase /
+RewriteRule host-meta$ \/\.well-known\/host-meta\.php [L]
diff --git a/apps/user_webfinger/appinfo/app.php b/apps/user_webfinger/appinfo/app.php
new file mode 100644 (file)
index 0000000..8e8f92c
--- /dev/null
@@ -0,0 +1,5 @@
+<?php
+OC_App::register( array( 
+  'order' => 11,
+  'id' => 'user_webfinger',
+  'name' => 'Webfinger' ));
diff --git a/apps/user_webfinger/appinfo/info.xml b/apps/user_webfinger/appinfo/info.xml
new file mode 100644 (file)
index 0000000..b5e79bd
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0"?>
+<info>
+       <id>user_webfinger</id>
+       <name>Webfinger</name>
+       <description>Provide webfinger for all users, so that they can use their ownCloud account as their remote storage on the web. If you don't run owncloud in the root of your domain, for instance if you run it on http://example.com/owncloud/, then makes sure you link http://example.com/.well-known/ to http://example.com/owncloud/apps/user_webfinger/ - for instance by running something like "ln -s /var/www/owncloud/apps/user_webfinger /var/www/.well-known". Only enable this app if you run this owncloud installation on a public web address, not if you run it on an intranet or on localhost.</description>
+       <version>0.1</version>
+       <licence>AGPL</licence>
+       <author>Michiel de Jong</author>
+       <require>2</require>
+</info>
diff --git a/apps/user_webfinger/host-meta b/apps/user_webfinger/host-meta
new file mode 100644 (file)
index 0000000..4edbfb7
--- /dev/null
@@ -0,0 +1 @@
+please run 'a2enmod rewrite' on your server
diff --git a/apps/user_webfinger/host-meta.php b/apps/user_webfinger/host-meta.php
new file mode 100644 (file)
index 0000000..d59629d
--- /dev/null
@@ -0,0 +1,12 @@
+<?php
+header("Access-Control-Allow-Origin: *");
+header("Content-Type: application/xml+xrd");
+echo "<";
+?>
+?xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0" xmlns:hm="http://host-meta.net/xrd/1.0">
+       <hm:Host xmlns="http://host-meta.net/xrd/1.0"><?php echo $_SERVER['SERVER_NAME'] ?></hm:Host>
+       <Link rel="lrdd" template="<?php echo $_SERVER['SERVER_NAME'] ?>://<?php echo $_SERVER['SERVER_NAME'] ?>/.well-known/webfinger.php?q={uri}">
+       </Link>
+</XRD>
+
diff --git a/apps/user_webfinger/webfinger.php b/apps/user_webfinger/webfinger.php
new file mode 100644 (file)
index 0000000..379a2f1
--- /dev/null
@@ -0,0 +1,20 @@
+<?php
+header("Access-Control-Allow-Origin: *");
+header("Content-Type: application/xml+xrd");
+
+if($_GET['q']) {
+       $bits = explode('@', $_GET['q']);
+       $userName = $bits[0];
+} else {
+       $userName = '';
+}
+if(substr($userName, 0, 5) == 'acct:') {
+       $userName = substr($userName, 5);
+}
+echo "<";
+?>
+xml version="1.0" encoding="UTF-8"?>
+<XRD xmlns="http://docs.oasis-open.org/ns/xri/xrd-1.0" xmlns:hm="http://host-meta.net/xrd/1.0">
+       <hm:Host xmlns="http://host-meta.net/xrd/1.0"><?php echo $_SERVER['SERVER_NAME'] ?></hm:Host>
+       <Link rel="http://unhosted.org/spec/dav/0.1" href="<?php echo $_SERVER['SERVER_NAME'] ?>://<?php echo $_SERVER['SERVER_NAME'] ?>/apps/unhosted/compat.php/<?php echo $userName ?>/unhosted/"></Link>
+</XRD>