Skip to content
Snippets Groups Projects
remote.php 960 B
Newer Older
  • Learn to ignore specific revisions
  • Georg Ehrke's avatar
    Georg Ehrke committed
    <?php
    
    $RUNTIME_NOAPPS = TRUE;
    
    Thomas Müller's avatar
    Thomas Müller committed
    require_once 'lib/base.php';
    
    $path_info = OC_Request::getPathInfo();
    
    if ($path_info === false || $path_info === '') {
    
    	OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND);
    	exit;
    }
    
    if (!$pos = strpos($path_info, '/', 1)) {
    	$pos = strlen($path_info);
    }
    $service=substr($path_info, 1, $pos-1);
    
    $file = OC_AppConfig::getValue('core', 'remote_' . $service);
    
    Thomas Müller's avatar
    Thomas Müller committed
    if(is_null($file)) {
    
    	OC_Response::setStatus(OC_Response::STATUS_NOT_FOUND);
    
    Georg Ehrke's avatar
    Georg Ehrke committed
    	exit;
    }
    
    Thomas Müller's avatar
    Thomas Müller committed
    $file=ltrim($file, '/');
    
    $parts=explode('/', $file, 2);
    $app=$parts[0];
    switch ($app) {
    
    	case 'core':
    		$file =  OC::$SERVERROOT .'/'. $file;
    		break;
    
    	default:
    		OC_Util::checkAppEnabled($app);
    		OC_App::loadApp($app);
    
    		if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
    			$file = OC_App::getAppPath($app) .'/'. $parts[1];
    		}else{
    			$file = '/' . OC_App::getAppPath($app) .'/'. $parts[1];
    		}
    
    $baseuri = OC::$WEBROOT . '/remote.php/'.$service.'/';
    
    Thomas Müller's avatar
    Thomas Müller committed
    require_once $file;