API: Remove old code. Move remaining methods to OC_OCS_Result.
This commit is contained in:
parent
2a4b554ca6
commit
3cc3405536
290
lib/ocs.php
290
lib/ocs.php
|
@ -103,44 +103,6 @@ class OC_OCS {
|
||||||
return($txt);
|
return($txt);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* checks if the user is authenticated
|
|
||||||
* checks the IP whitlist, apikeys and login/password combination
|
|
||||||
* if $forceuser is true and the authentication failed it returns an 401 http response.
|
|
||||||
* if $forceuser is false and authentification fails it returns an empty username string
|
|
||||||
* @param bool $forceuser
|
|
||||||
* @return username string
|
|
||||||
*/
|
|
||||||
private static function checkPassword($forceuser=true) {
|
|
||||||
//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(empty($authuser)) {
|
|
||||||
if($forceuser) {
|
|
||||||
header('WWW-Authenticate: Basic realm="your valid user account or api key"');
|
|
||||||
header('HTTP/1.0 401 Unauthorized');
|
|
||||||
exit;
|
|
||||||
}else{
|
|
||||||
$identifieduser='';
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
if(!OC_User::login($authuser, $authpw)) {
|
|
||||||
if($forceuser) {
|
|
||||||
header('WWW-Authenticate: Basic realm="your valid user account or api key"');
|
|
||||||
header('HTTP/1.0 401 Unauthorized');
|
|
||||||
exit;
|
|
||||||
}else{
|
|
||||||
$identifieduser='';
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$identifieduser=$authuser;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return($identifieduser);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* generates the xml or json response for the API call from an multidimenional data array.
|
* generates the xml or json response for the API call from an multidimenional data array.
|
||||||
|
@ -261,130 +223,6 @@ class OC_OCS {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* return the config data of this server
|
|
||||||
* @param string $format
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
public static function apiConfig($parameters) {
|
|
||||||
$format = $parameters['format'];
|
|
||||||
$user=OC_OCS::checkpassword(false);
|
|
||||||
$url=substr(OCP\Util::getServerHost().$_SERVER['SCRIPT_NAME'], 0, -11).'';
|
|
||||||
|
|
||||||
$xml['version']='1.7';
|
|
||||||
$xml['website']='ownCloud';
|
|
||||||
$xml['host']=OCP\Util::getServerHost();
|
|
||||||
$xml['contact']='';
|
|
||||||
$xml['ssl']='false';
|
|
||||||
echo(OC_OCS::generatexml($format, 'ok', 100, '', $xml, 'config', '', 1));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* check if the provided login/apikey/password is valid
|
|
||||||
* @param string $format
|
|
||||||
* @param string $login
|
|
||||||
* @param string $passwd
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function personCheck($format,$login,$passwd) {
|
|
||||||
if($login<>'') {
|
|
||||||
if(OC_User::login($login, $passwd)) {
|
|
||||||
$xml['person']['personid']=$login;
|
|
||||||
echo(OC_OCS::generatexml($format, 'ok', 100, '', $xml, 'person', 'check', 2));
|
|
||||||
}else{
|
|
||||||
echo(OC_OCS::generatexml($format, 'failed', 102, 'login not valid'));
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
echo(OC_OCS::generatexml($format, 'failed', 101, 'please specify all mandatory fields'));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ACTIVITY API #############################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get my activities
|
|
||||||
* @param string $format
|
|
||||||
* @param string $page
|
|
||||||
* @param string $pagesize
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function activityGet($format, $page, $pagesize) {
|
|
||||||
$user=OC_OCS::checkpassword();
|
|
||||||
|
|
||||||
//TODO
|
|
||||||
|
|
||||||
$txt=OC_OCS::generatexml($format, 'ok', 100, '', $xml, 'activity', 'full', 2, $totalcount,$pagesize);
|
|
||||||
echo($txt);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* submit a activity
|
|
||||||
* @param string $format
|
|
||||||
* @param string $message
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function activityPut($format,$message) {
|
|
||||||
// not implemented in ownCloud
|
|
||||||
$user=OC_OCS::checkpassword();
|
|
||||||
echo(OC_OCS::generatexml($format, 'ok', 100, ''));
|
|
||||||
}
|
|
||||||
|
|
||||||
// PRIVATEDATA API #############################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get private data and create the xml for ocs
|
|
||||||
* @param string $format
|
|
||||||
* @param string $app
|
|
||||||
* @param string $key
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function privateDataGet($format, $app="", $key="") {
|
|
||||||
$user=OC_OCS::checkpassword();
|
|
||||||
$result=OC_OCS::getData($user, $app, $key);
|
|
||||||
$xml=array();
|
|
||||||
foreach($result as $i=>$log) {
|
|
||||||
$xml[$i]['key']=$log['key'];
|
|
||||||
$xml[$i]['app']=$log['app'];
|
|
||||||
$xml[$i]['value']=$log['value'];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$txt=OC_OCS::generatexml($format, 'ok', 100, '', $xml, 'privatedata', 'full', 2, count($xml), 0);//TODO: replace 'privatedata' with 'attribute' once a new libattice has been released that works with it
|
|
||||||
echo($txt);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* set private data referenced by $key to $value and generate the xml for ocs
|
|
||||||
* @param string $format
|
|
||||||
* @param string $app
|
|
||||||
* @param string $key
|
|
||||||
* @param string $value
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function privateDataSet($format, $app, $key, $value) {
|
|
||||||
$user=OC_OCS::checkpassword();
|
|
||||||
if(OC_OCS::setData($user, $app, $key, $value)) {
|
|
||||||
echo(OC_OCS::generatexml($format, 'ok', 100, ''));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* delete private data referenced by $key and generate the xml for ocs
|
|
||||||
* @param string $format
|
|
||||||
* @param string $app
|
|
||||||
* @param string $key
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function privateDataDelete($format, $app, $key) {
|
|
||||||
if($key=="" or $app=="") {
|
|
||||||
return; //key and app are NOT optional here
|
|
||||||
}
|
|
||||||
$user=OC_OCS::checkpassword();
|
|
||||||
if(OC_OCS::deleteData($user, $app, $key)) {
|
|
||||||
echo(OC_OCS::generatexml($format, 'ok', 100, ''));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* get private data
|
* get private data
|
||||||
* @param string $user
|
* @param string $user
|
||||||
|
@ -416,93 +254,6 @@ class OC_OCS {
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* set private data referenced by $key to $value
|
|
||||||
* @param string $user
|
|
||||||
* @param string $app
|
|
||||||
* @param string $key
|
|
||||||
* @param string $value
|
|
||||||
* @return bool
|
|
||||||
*/
|
|
||||||
public static function setData($user, $app, $key, $value) {
|
|
||||||
return OC_Preferences::setValue($user, $app, $key, $value);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* delete private data referenced by $key
|
|
||||||
* @param string $user
|
|
||||||
* @param string $app
|
|
||||||
* @param string $key
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
public static function deleteData($user, $app, $key) {
|
|
||||||
return OC_Preferences::deleteKey($user, $app, $key);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// CLOUD API #############################################
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get a list of installed web apps
|
|
||||||
* @param string $format
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function systemWebApps($format) {
|
|
||||||
$login=OC_OCS::checkpassword();
|
|
||||||
$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;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
$txt=OC_OCS::generatexml($format, 'ok', 100, '', $values, 'cloud', '', 2, 0, 0);
|
|
||||||
echo($txt);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get the quota of a user
|
|
||||||
* @param string $format
|
|
||||||
* @param string $user
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function quotaGet($format,$user) {
|
|
||||||
$login=OC_OCS::checkpassword();
|
|
||||||
if(OC_Group::inGroup($login, 'admin') or ($login==$user)) {
|
|
||||||
|
|
||||||
if(OC_User::userExists($user)) {
|
|
||||||
// calculate the disc space
|
|
||||||
$user_dir = '/'.$user.'/files';
|
|
||||||
OC_Filesystem::init($user_dir);
|
|
||||||
$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;
|
|
||||||
|
|
||||||
$txt=OC_OCS::generatexml($format, 'ok', 100, '', $xml, 'cloud', '', 1, 0, 0);
|
|
||||||
echo($txt);
|
|
||||||
}else{
|
|
||||||
echo self::generateXml('', 'fail', 300, 'User does not exist');
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
echo self::generateXml('', 'fail', 300, 'You don´t have permission to access this ressource.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* set the quota of a user
|
* set the quota of a user
|
||||||
* @param string $format
|
* @param string $format
|
||||||
|
@ -527,45 +278,4 @@ class OC_OCS {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* get the public key of a user
|
|
||||||
* @param string $format
|
|
||||||
* @param string $user
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function publicKeyGet($format,$user) {
|
|
||||||
$login=OC_OCS::checkpassword();
|
|
||||||
|
|
||||||
if(OC_User::userExists($user)) {
|
|
||||||
// calculate the disc space
|
|
||||||
$txt='this is the public key of '.$user;
|
|
||||||
echo($txt);
|
|
||||||
}else{
|
|
||||||
echo self::generateXml('', 'fail', 300, 'User does not exist');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* get the private key of a user
|
|
||||||
* @param string $format
|
|
||||||
* @param string $user
|
|
||||||
* @return string xml/json
|
|
||||||
*/
|
|
||||||
private static function privateKeyGet($format,$user) {
|
|
||||||
$login=OC_OCS::checkpassword();
|
|
||||||
if(OC_Group::inGroup($login, 'admin') or ($login==$user)) {
|
|
||||||
|
|
||||||
if(OC_User::userExists($user)) {
|
|
||||||
// calculate the disc space
|
|
||||||
$txt='this is the private key of '.$user;
|
|
||||||
echo($txt);
|
|
||||||
}else{
|
|
||||||
echo self::generateXml('', 'fail', 300, 'User does not exist');
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
echo self::generateXml('', 'fail', 300, 'You don´t have permission to access this ressource.');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@ class OC_OCS_Cloud {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getUserQuota($parameters){
|
public static function getUserQuota($parameters){
|
||||||
OC_Util::checkLoggedIn();
|
|
||||||
$user = OC_User::getUser();
|
$user = OC_User::getUser();
|
||||||
if(OC_Group::inGroup($user, 'admin') or ($user==$parameters['user'])) {
|
if(OC_Group::inGroup($user, 'admin') or ($user==$parameters['user'])) {
|
||||||
|
|
||||||
|
@ -41,44 +40,25 @@ class OC_OCS_Cloud {
|
||||||
|
|
||||||
return new OC_OCS_Result($xml);
|
return new OC_OCS_Result($xml);
|
||||||
}else{
|
}else{
|
||||||
return 300;
|
return new OC_OCS_Result(null, 300);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
return 300;
|
return new OC_OCS_Result(null, 300);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static function setUserQuota($parameters){
|
|
||||||
OC_Util::checkLoggedIn();
|
|
||||||
$user = OC_User::getUser();
|
|
||||||
if(OC_Group::inGroup($user, 'admin')) {
|
|
||||||
|
|
||||||
// todo
|
|
||||||
// not yet implemented
|
|
||||||
// add logic here
|
|
||||||
error_log('OCS call: user:'.$parameters['user'].' quota:'.$parameters['quota']);
|
|
||||||
|
|
||||||
$xml=array();
|
|
||||||
return $xml;
|
|
||||||
}else{
|
|
||||||
return 300;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getUserPublickey($parameters){
|
public static function getUserPublickey($parameters){
|
||||||
OC_Util::checkLoggedIn();
|
|
||||||
|
|
||||||
if(OC_User::userExists($parameters['user'])){
|
if(OC_User::userExists($parameters['user'])){
|
||||||
// calculate the disc space
|
// calculate the disc space
|
||||||
// TODO
|
// TODO
|
||||||
return array();
|
return new OC_OCS_Result(array());
|
||||||
}else{
|
}else{
|
||||||
return 300;
|
return new OC_OCS_Result(null, 300);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getUserPrivatekey($parameters){
|
public static function getUserPrivatekey($parameters){
|
||||||
OC_Util::checkLoggedIn();
|
|
||||||
$user = OC_User::getUser();
|
$user = OC_User::getUser();
|
||||||
if(OC_Group::inGroup($user, 'admin') or ($user==$parameters['user'])) {
|
if(OC_Group::inGroup($user, 'admin') or ($user==$parameters['user'])) {
|
||||||
|
|
||||||
|
@ -87,10 +67,10 @@ class OC_OCS_Cloud {
|
||||||
$txt='this is the private key of '.$parameters['user'];
|
$txt='this is the private key of '.$parameters['user'];
|
||||||
echo($txt);
|
echo($txt);
|
||||||
}else{
|
}else{
|
||||||
echo self::generateXml('', 'fail', 300, 'User does not exist');
|
return new OC_OCS_Result(null, 300, 'User does not exist');
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
echo self::generateXml('', 'fail', 300, 'You don´t have permission to access this ressource.');
|
return new OC_OCS_Result('null', 300, 'You don´t have permission to access this ressource.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,4 +10,5 @@ class OC_OCS_Config {
|
||||||
$xml['ssl'] = 'false';
|
$xml['ssl'] = 'false';
|
||||||
return new OC_OCS_Result($xml);
|
return new OC_OCS_Result($xml);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@ class OC_OCS_Privatedata {
|
||||||
$app = addslashes(strip_tags($parameters['app']));
|
$app = addslashes(strip_tags($parameters['app']));
|
||||||
$key = addslashes(strip_tags($parameters['key']));
|
$key = addslashes(strip_tags($parameters['key']));
|
||||||
$value = OC_OCS::readData('post', 'value', 'text');
|
$value = OC_OCS::readData('post', 'value', 'text');
|
||||||
if(OC_OCS::setData($user,$app,$key,$value)){
|
if(OC_Preferences::setValue($user,$app,$key,$value)){
|
||||||
return new OC_OCS_Result(null, 100);
|
return new OC_OCS_Result(null, 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,7 +37,7 @@ class OC_OCS_Privatedata {
|
||||||
if($key=="" or $app==""){
|
if($key=="" or $app==""){
|
||||||
return new OC_OCS_Result(null, 101); //key and app are NOT optional here
|
return new OC_OCS_Result(null, 101); //key and app are NOT optional here
|
||||||
}
|
}
|
||||||
if(OC_OCS::deleteData($user,$app,$key)){
|
if(OC_Preferences::deleteKey($user,$app,$key)){
|
||||||
return new OC_OCS_Result(null, 100);
|
return new OC_OCS_Result(null, 100);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,6 +11,12 @@ OC_API::register('get', '/config', array('OC_OCS_Config', 'apiConfig'), 'ocs', O
|
||||||
OC_API::register('post', '/person/check', array('OC_OCS_Person', 'check'), 'ocs', OC_API::GUEST_AUTH);
|
OC_API::register('post', '/person/check', array('OC_OCS_Person', 'check'), 'ocs', OC_API::GUEST_AUTH);
|
||||||
// Activity
|
// Activity
|
||||||
OC_API::register('get', '/activity', array('OC_OCS_Activity', 'activityGet'), 'ocs', OC_API::USER_AUTH);
|
OC_API::register('get', '/activity', array('OC_OCS_Activity', 'activityGet'), 'ocs', OC_API::USER_AUTH);
|
||||||
|
|
||||||
|
|
||||||
|
//activity put, keygetpublic, keygetprivate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Privatedata
|
// Privatedata
|
||||||
OC_API::register('get', '/privatedata/getattribute', array('OC_OCS_Privatedata', 'get'), 'ocs', OC_API::USER_AUTH, array('app' => '', 'key' => ''));
|
OC_API::register('get', '/privatedata/getattribute', array('OC_OCS_Privatedata', 'get'), 'ocs', OC_API::USER_AUTH, array('app' => '', 'key' => ''));
|
||||||
OC_API::register('get', '/privatedata/getattribute/{app}', array('OC_OCS_Privatedata', 'get'), 'ocs', OC_API::USER_AUTH, array('key' => ''));
|
OC_API::register('get', '/privatedata/getattribute/{app}', array('OC_OCS_Privatedata', 'get'), 'ocs', OC_API::USER_AUTH, array('key' => ''));
|
||||||
|
|
Loading…
Reference in New Issue