From b462795be297f2428c70d5e6a657c04125b028ec Mon Sep 17 00:00:00 2001
From: Frank Karlitschek <frank@owncloud.org>
Date: Sat, 5 May 2012 23:42:38 +0200
Subject: [PATCH] added a nice API to get the installes Apps with names, urls
 and icon from the outside. This is useful for some nice upcoming desktop and
 mobile integration

---
 apps/bookmarks/appinfo/info.xml |  3 +-
 apps/contacts/appinfo/info.xml  |  1 +
 apps/files/appinfo/info.xml     |  1 +
 apps/gallery/appinfo/info.xml   |  1 +
 apps/media/appinfo/info.xml     |  1 +
 webapps.php                     | 56 +++++++++++++++++++++++++++++++++
 6 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 webapps.php

diff --git a/apps/bookmarks/appinfo/info.xml b/apps/bookmarks/appinfo/info.xml
index 39779483d8..4dbb74bb76 100644
--- a/apps/bookmarks/appinfo/info.xml
+++ b/apps/bookmarks/appinfo/info.xml
@@ -5,5 +5,6 @@
 	<description>Bookmark manager for ownCloud</description>
 	<licence>AGPL</licence>
 	<author>Arthur Schiwon, Marvin Thomas Rabe</author>
+	<standalone/>
 	<require>2</require>
-</info>
\ No newline at end of file
+</info>
diff --git a/apps/contacts/appinfo/info.xml b/apps/contacts/appinfo/info.xml
index 55ddf42ccc..4d2fe38372 100644
--- a/apps/contacts/appinfo/info.xml
+++ b/apps/contacts/appinfo/info.xml
@@ -6,5 +6,6 @@
 	<author>Jakob Sack</author>
 	<require>2</require>
 	<description>Address book with CardDAV support.</description>
+	<standalone/>
 	<default_enable/>
 </info>
diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml
index 2abf54e7da..03076dee98 100644
--- a/apps/files/appinfo/info.xml
+++ b/apps/files/appinfo/info.xml
@@ -6,5 +6,6 @@
 	<licence>AGPL</licence>
 	<author>Robin Appelman</author>
 	<require>2</require>
+	<standalone/>
 	<default_enable/>
 </info>
diff --git a/apps/gallery/appinfo/info.xml b/apps/gallery/appinfo/info.xml
index 7dc85374b0..5b5ee0f731 100644
--- a/apps/gallery/appinfo/info.xml
+++ b/apps/gallery/appinfo/info.xml
@@ -6,5 +6,6 @@
 	<author>Bartek Przybylski</author>
 	<require>2</require>
 	<description>Dedicated pictures application</description>
+	<standalone/>
 	<default_enable/>
 </info>
diff --git a/apps/media/appinfo/info.xml b/apps/media/appinfo/info.xml
index 01145d4a94..ea5b77c9c8 100644
--- a/apps/media/appinfo/info.xml
+++ b/apps/media/appinfo/info.xml
@@ -6,5 +6,6 @@
 	<licence>AGPL</licence>
 	<author>Robin Appelman</author>
 	<require>2</require>
+	<standalone/>
 	<default_enable/>
 </info>
diff --git a/webapps.php b/webapps.php
new file mode 100644
index 0000000000..99553fa8ef
--- /dev/null
+++ b/webapps.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+* ownCloud status page. usefull if you want to check from the outside if an owncloud installation exists
+*
+* @author Frank Karlitschek
+* @copyright 2010 Frank Karlitschek karlitschek@kde.org
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library.  If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+$RUNTIME_NOAPPS = TRUE; //no apps, yet
+
+require_once('lib/base.php');
+
+
+//valid user account 
+if(isset($_SERVER['PHP_AUTH_USER'])) $authuser=$_SERVER['PHP_AUTH_USER']; else $authuser='';
+if(isset($_SERVER['PHP_AUTH_PW']))   $authpw=$_SERVER['PHP_AUTH_PW']; else $authpw='';
+
+if(!OC_User::login($authuser,$authpw)){
+	header('WWW-Authenticate: Basic realm="your valid user account"');
+	header('HTTP/1.0 401 Unauthorized');
+	exit;
+}else{
+
+	$apps=OC_App::getEnabledApps();
+	$values=array();
+	foreach($apps as $app) {
+		$info=OC_App::getAppInfo($app);
+		if(isset($info['standalone'])) {
+			$newvalue=array('name'=>$info['name'],'url'=>OC_Helper::linkToAbsolute($app,''),'icon'=>'');
+			$values[]=$newvalue;
+		}
+
+	}
+
+	echo(json_encode($values));
+	exit;
+
+
+}
+
+?>
-- 
GitLab