summaryrefslogtreecommitdiffstats
path: root/settings/ajax/apps/ocs.php
blob: fb78cc89248471008532c2be7fcc7a8aca3a65d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
/**
 * Copyright (c) 2012 Thomas Tanghus <thomas@tanghus.net>
 * This file is licensed under the Affero General Public License version 3 or
 * later.
 * See the COPYING-README file.
 */

// Init owncloud
require_once '../../../lib/base.php';

OC_JSON::checkAdminUser();

$l = OC_L10N::get('settings');

if(OC_Config::getValue('appstoreenabled', true)==false) {
	OCP\JSON::success(array('type' => 'external', 'data' => array()));
}

$enabledApps=OC_App::getEnabledApps();

if(is_null($enabledApps)) {
	OCP\JSON::error(array('data' => array('message' => $l->t('Unable to load list from App Store'))));
}

$apps=array();

// apps from external repo via OCS
$catagoryNames=OC_OCSClient::getCategories();
if(is_array($catagoryNames)) {
	$categories=array_keys($catagoryNames);
	$page=0;
	$filter='approved';
	$externalApps=OC_OCSClient::getApplications($categories, $page, $filter);
	foreach($externalApps as $app) {
		// show only external apps that aren't enabled yet
		$local=false;
		foreach($enabledApps as $a) {
			if($a == $app['name']) {
				$local=true;
			}
		}

		if(!$local) {
			if($app['preview']=='') {
				$pre='trans.png';
			} else {
				$pre=$app['preview'];
			}
			$apps[]=array(
				'name'=>$app['name'],
				'id'=>$app['id'],
				'active'=>false,
				'description'=>$app['description'],
				'author'=>$app['personid'],
				'license'=>$app['license'],
				'preview'=>$pre,
				'internal'=>false,
				'internallabel'=>'3rd Party App',
			);
		}
	}
}

OCP\JSON::success(array('type' => 'external', 'data' => $apps));