selective app loading for remote/public

This commit is contained in:
Robin Appelman 2012-05-14 00:28:22 +02:00
parent 0fb90fa875
commit e7c106d91e
9 changed files with 46 additions and 8 deletions

View File

@ -7,6 +7,10 @@
*/
OCP\App::checkAppEnabled('calendar');
// only need authentication apps
$RUNTIME_APPTYPES=array('authentication');
OC_App::loadApps($RUNTIME_APPTYPES);
// Backends
$authBackend = new OC_Connector_Sabre_Auth();
$principalBackend = new OC_Connector_Sabre_Principal();

View File

@ -22,6 +22,10 @@
OCP\App::checkAppEnabled('contacts');
// only need authentication apps
$RUNTIME_APPTYPES=array('authentication');
OC_App::loadApps($RUNTIME_APPTYPES);
// Backends
$authBackend = new OC_Connector_Sabre_Auth();
$principalBackend = new OC_Connector_Sabre_Principal();

View File

@ -8,6 +8,9 @@
<require>2</require>
<standalone/>
<default_enable/>
<types>
<filesystem/>
</types>
<remote>
<files>appinfo/remote.php</files>
<webdav>appinfo/remote.php</webdav>

View File

@ -24,6 +24,7 @@
*/
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem','authentication');
OC_App::loadApps($RUNTIME_APPTYPES);
// Backends
$authBackend = new OC_Connector_Sabre_Auth();

View File

@ -1,6 +1,10 @@
<?php
$RUNTIME_NOSETUPFS=true; //don't setup the fs yet
// only need authentication apps
$RUNTIME_APPTYPES=array('authentication');
OC_App::loadApps($RUNTIME_APPTYPES);
OCP\JSON::checkAppEnabled('files_sharing');
require_once 'lib_share.php';

View File

@ -1,7 +1,11 @@
<?php
// only need filesystem apps
$RUNTIME_APPTYPES=array('filesystem','authentication');
OC_App::loadApps($RUNTIME_APPTYPES);
if($path_info == '/ampache' || $path_info == '/ampache/'){
require_once(OC::$APPSROOT . '/apps/media/index.php');
}else{
require_once(OC::$APPSROOT . '/apps/media/server/xml.server.php');
}
?>

View File

@ -65,9 +65,7 @@ class OC_App{
$apps = self::getEnabledApps();
foreach( $apps as $app ){
if((is_null($types) or self::isType($app,$types))){
if(is_file(OC::$APPSROOT.'/apps/'.$app.'/appinfo/app.php')){
require( $app.'/appinfo/app.php' );
}
self::loadApp($app);
}
}
@ -77,6 +75,16 @@ class OC_App{
return true;
}
/**
* load a single app
* @param string app
*/
public static function loadApp($app){
if(is_file(OC::$APPSROOT.'/apps/'.$app.'/appinfo/app.php')){
require_once( $app.'/appinfo/app.php' );
}
}
/**
* check if an app is of a sepcific type
* @param string $app
@ -115,7 +123,7 @@ class OC_App{
self::$appTypes[$app]='';
}
OC_Appconfig::setValue($app,'types',implode(',',self::$appTypes[$app]));
OC_Appconfig::setValue($app,'types',self::$appTypes[$app]);
}
return explode(',',self::$appTypes[$app]);

View File

@ -1,10 +1,15 @@
<?php
$RUNTIME_NOSETUPFS = true;
//$RUNTIME_NOAPPS = TRUE;
$RUNTIME_NOAPPS = TRUE;
require_once('lib/base.php');
$file = OCP\CONFIG::getAppValue('core', 'public_' . strip_tags($_GET['service']));
if(is_null($file)){
header('HTTP/1.0 404 Not Found');
exit;
}
require_once(OC::$APPSROOT . $file);
$parts=explode('/',$file);
$app=$parts[2];
OC_App::loadApp($app);
require_once(OC::$APPSROOT . $file);

View File

@ -1,6 +1,6 @@
<?php
$RUNTIME_NOSETUPFS = true;
//$RUNTIME_NOAPPS = TRUE;
$RUNTIME_NOAPPS = TRUE;
require_once('lib/base.php');
if (array_key_exists('PATH_INFO', $_SERVER)){
$path_info = $_SERVER['PATH_INFO'];
@ -16,5 +16,10 @@ if(is_null($file)){
header('HTTP/1.0 404 Not Found');
exit;
}
$parts=explode('/',$file);
$app=$parts[2];
OC_App::loadApp($app);
$baseuri = OC::$WEBROOT . '/remote.php/'.$service.'/';
require_once(OC::$APPSROOT . $file);