summaryrefslogtreecommitdiffstats
path: root/lib/ocs/cloud.php
blob: faafe9a62ddaa57bbec833c04927fe08b97353a9 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
<?php
/**
* ownCloud
*
* @author Frank Karlitschek
* @author Tom Needham
* @copyright 2012 Frank Karlitschek frank@owncloud.org
* @copyright 2012 Tom Needham tom@owncloud.com
*
* 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/>.
*
*/

class OC_OCS_Cloud {

	public static function getSystemWebApps() {
		OC_Util::checkLoggedIn();
		$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;
			}
		}
		return new OC_OCS_Result($values);
	}
	
	public static function getUserQuota($parameters) {
		$user = OC_User::getUser();
		if(OC_User::isAdminUser($user) or ($user==$parameters['user'])) {

			if(OC_User::userExists($parameters['user'])) {
				// calculate the disc space
				$userDir = '/'.$parameters['user'].'/files';
				OC_Filesystem::init($userDir);
				$rootInfo = OC_FileCache::get('');
				$sharedInfo = OC_FileCache::get('/Shared');
				$used = $rootInfo['size'] - $sharedInfo['size'];
				$free = OC_Filesystem::free_space();
				$total = $free + $used;
				if($total===0) $total = 1;  // prevent division by zero
				$relative = round(($used/$total)*10000)/100;

				$xml = array();
				$xml['quota'] = $total;
				$xml['free'] = $free;
				$xml['used'] = $used;
				$xml['relative'] = $relative;

				return new OC_OCS_Result($xml);
			} else {
				return new OC_OCS_Result(null, 300);
			}
		} else {
			return new OC_OCS_Result(null, 300);
		}
	}
	
	public static function getUserPublickey($parameters) {

		if(OC_User::userExists($parameters['user'])) {
			// calculate the disc space
			// TODO
			return new OC_OCS_Result(array());
		} else {
			return new OC_OCS_Result(null, 300);
		}
	}
	
	public static function getUserPrivatekey($parameters) {
		$user = OC_User::getUser();
		if(OC_User::isAdminUser($user) or ($user==$parameters['user'])) {

			if(OC_User::userExists($user)) {
				// calculate the disc space
				$txt = 'this is the private key of '.$parameters['user'];
				echo($txt);
			} else {
				return new OC_OCS_Result(null, 300, 'User does not exist');
			}
		} else {
			return new OC_OCS_Result('null', 300, 'You don´t have permission to access this ressource.');
		}
	}
}