Exemplo n.º 1
0
 public function testGetApps()
 {
     $query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*appconfig` ORDER BY `appid`');
     $result = $query->execute();
     $expected = array();
     while ($row = $result->fetchRow()) {
         $expected[] = $row['appid'];
     }
     sort($expected);
     $apps = \OC_Appconfig::getApps();
     $this->assertEquals($expected, $apps);
 }
 /**
  * @brief loads all apps
  * @returns true/false
  *
  * This function walks through the owncloud directory and loads all apps
  * it can find. A directory contains an app if the file /appinfo/app.php
  * exists.
  */
 public static function loadApps()
 {
     // Did we allready load everything?
     if (self::$init) {
         return true;
     }
     // Our very own core apps are hardcoded
     foreach (array('files', 'settings') as $app) {
         require $app . '/appinfo/app.php';
     }
     // The rest comes here
     $apps = OC_Appconfig::getApps();
     foreach ($apps as $app) {
         if (self::isEnabled($app)) {
             if (is_file(OC::$SERVERROOT . '/apps/' . $app . '/appinfo/app.php')) {
                 require 'apps/' . $app . '/appinfo/app.php';
             }
         }
     }
     self::$init = true;
     // return
     return true;
 }
Exemplo n.º 3
0
// This change is due the fact that an admin may not be expected
// to execute arbitrary code in every environment.
if ($app === 'core' && isset($_POST['key']) && (substr($_POST['key'], 0, 7) === 'remote_' || substr($_POST['key'], 0, 7) === 'public_')) {
    OC_JSON::error(array('data' => array('message' => 'Unexpected error!')));
    return;
}
$result = false;
switch ($action) {
    case 'getValue':
        $result = OC_Appconfig::getValue($app, $_GET['key'], $_GET['defaultValue']);
        break;
    case 'setValue':
        $result = OC_Appconfig::setValue($app, $_POST['key'], $_POST['value']);
        break;
    case 'getApps':
        $result = OC_Appconfig::getApps();
        break;
    case 'getKeys':
        $result = OC_Appconfig::getKeys($app);
        break;
    case 'hasKey':
        $result = OC_Appconfig::hasKey($app, $_GET['key']);
        break;
    case 'deleteKey':
        $result = OC_Appconfig::deleteKey($app, $_POST['key']);
        break;
    case 'deleteApp':
        $result = OC_Appconfig::deleteApp($app);
        break;
}
OC_JSON::success(array('data' => $result));
Exemplo n.º 4
0
}
if (substr($userName, 0, 5) == 'acct:') {
    $userName = substr($userName, 5);
}
if ($userName == "") {
    $id = "";
} else {
    $id = $userName . '@' . $hostName;
}
if (isset($_SERVER['HTTPS'])) {
    $baseAddress = 'https://';
} else {
    $baseAddress = 'http://';
}
$baseAddress .= $_SERVER['SERVER_NAME'] . OC::$WEBROOT;
if (empty($id)) {
    header("HTTP/1.0 400 Bad Request");
}
define('WF_USER', $userName);
define('WF_ID', $id);
define('WF_BASEURL', $baseAddress);
echo "{\"links\":[";
$apps = OC_Appconfig::getApps();
foreach ($apps as $app) {
    if (OCP\App::isEnabled($app)) {
        if (is_file(OC_App::getAppPath($app) . '/appinfo/webfinger.php')) {
            require $app . '/appinfo/webfinger.php';
        }
    }
}
echo "]}";
Exemplo n.º 5
0
 public function __construct(array $urlParams = array())
 {
     parent::__construct('news', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('PageController', function ($c) {
         return new PageController($c->query('AppName'), $c->query('Request'), $c->query('CoreConfig'), $c->query('L10N'), $c->query('UserId'));
     });
     $container->registerService('FolderController', function ($c) {
         return new FolderController($c->query('AppName'), $c->query('Request'), $c->query('FolderBusinessLayer'), $c->query('FeedBusinessLayer'), $c->query('ItemBusinessLayer'), $c->query('UserId'));
     });
     $container->registerService('FeedController', function ($c) {
         return new FeedController($c->query('AppName'), $c->query('Request'), $c->query('FolderBusinessLayer'), $c->query('FeedBusinessLayer'), $c->query('ItemBusinessLayer'), $c->query('CoreConfig'), $c->query('UserId'));
     });
     $container->registerService('ItemController', function ($c) {
         return new ItemController($c->query('AppName'), $c->query('Request'), $c->query('FeedBusinessLayer'), $c->query('ItemBusinessLayer'), $c->query('CoreConfig'), $c->query('UserId'));
     });
     $container->registerService('ExportController', function ($c) {
         return new ExportController($c->query('AppName'), $c->query('Request'), $c->query('FeedBusinessLayer'), $c->query('FolderBusinessLayer'), $c->query('ItemBusinessLayer'), $c->query('OPMLExporter'), $c->query('UserId'));
     });
     $container->registerService('ApiController', function ($c) {
         return new ApiController($c->query('AppName'), $c->query('Request'), $c->query('Updater'), $c->query('CoreConfig'));
     });
     $container->registerService('FolderApiController', function ($c) {
         return new FolderApiController($c->query('AppName'), $c->query('Request'), $c->query('FolderBusinessLayer'), $c->query('ItemBusinessLayer'), $c->query('UserId'));
     });
     $container->registerService('FeedApiController', function ($c) {
         return new FeedApiController($c->query('AppName'), $c->query('Request'), $c->query('FolderBusinessLayer'), $c->query('FeedBusinessLayer'), $c->query('ItemBusinessLayer'), $c->query('Logger'), $c->query('UserId'));
     });
     $container->registerService('ItemApiController', function ($c) {
         return new ItemApiController($c->query('AppName'), $c->query('Request'), $c->query('ItemBusinessLayer'), $c->query('UserId'));
     });
     /**
      * Business Layer
      */
     $container->registerService('FolderBusinessLayer', function ($c) {
         return new FolderBusinessLayer($c->query('FolderMapper'), $c->query('L10N'), $c->query('TimeFactory'), $c->query('Config'));
     });
     $container->registerService('FeedBusinessLayer', function ($c) {
         return new FeedBusinessLayer($c->query('FeedMapper'), $c->query('Fetcher'), $c->query('ItemMapper'), $c->query('Logger'), $c->query('L10N'), $c->query('TimeFactory'), $c->query('Config'), $c->query('Enhancer'), $c->query('HTMLPurifier'));
     });
     $container->registerService('ItemBusinessLayer', function ($c) {
         return new ItemBusinessLayer($c->query('ItemMapper'), $c->query('StatusFlag'), $c->query('TimeFactory'), $c->query('Config'));
     });
     /**
      * Mappers
      */
     $container->registerService('MapperFactory', function ($c) {
         return new MapperFactory($c->query('DatabaseType'), $c->query('Db'));
     });
     $container->registerService('FolderMapper', function ($c) {
         return new FolderMapper($c->query('Db'));
     });
     $container->registerService('FeedMapper', function ($c) {
         return new FeedMapper($c->query('Db'));
     });
     $container->registerService('ItemMapper', function ($c) {
         return $c->query('MapperFactory')->getItemMapper($c->query('Db'));
     });
     /**
      * App config parser
      */
     $container->registerService('AppConfig', function ($c) {
         // not performant but well :/
         // $config = $c->query('ServerContainer')->getAppConfig(); oc7 only
         $installedApps = \OC_Appconfig::getApps();
         $apps = array();
         foreach ($installedApps as $app) {
             $apps[] = array($app => \OC_Appconfig::getValue($app, 'installed_version', '0'));
         }
         // order extensions in name => version
         $loadedExtensions = get_loaded_extensions();
         $extensions = array();
         foreach ($loadedExtensions as $extension) {
             $extensions[$extension] = phpversion($extension);
         }
         return new AppConfig($c->query('ServerContainer')->getNavigationManager(), $c->query('L10N'), $c->query('ServerContainer')->getURLGenerator(), phpversion(), implode('.', \OCP\Util::getVersion()), $apps, $extensions, $c->query('DatabaseType'));
     });
     /**
      * Core
      */
     $container->registerService('L10N', function ($c) {
         return $c->query('ServerContainer')->getL10N($c->query('AppName'));
     });
     $container->registerService('UserId', function () {
         return \OCP\User::getUser();
     });
     $container->registerService('Logger', function ($c) {
         return new Logger($c->query('AppName'));
     });
     $container->registerService('Db', function () {
         return new Db();
     });
     $container->registerService('CoreConfig', function ($c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('DatabaseType', function ($c) {
         return $c->query('ServerContainer')->getConfig()->getSystemValue('dbtype');
     });
     /**
      * Utility
      */
     $container->registerService('ConfigView', function () {
         $view = new View('/news/config');
         if (!$view->file_exists('')) {
             $view->mkdir('');
         }
         return $view;
     });
     $container->registerService('Config', function ($c) {
         $config = new Config($c->query('ConfigView'), $c->query('Logger'));
         $config->read('config.ini', true);
         return $config;
     });
     $container->registerService('simplePieCacheDirectory', function ($c) {
         $directory = $c->query('CoreConfig')->getSystemValue('datadirectory') . '/news/cache/simplepie';
         if (!is_dir($directory)) {
             mkdir($directory, 0770, true);
         }
         return $directory;
     });
     $container->registerService('HTMLPurifier', function ($c) {
         $directory = $c->query('CoreConfig')->getSystemValue('datadirectory') . '/news/cache/purifier';
         if (!is_dir($directory)) {
             mkdir($directory, 0770, true);
         }
         $config = \HTMLPurifier_Config::createDefault();
         $config->set('HTML.ForbiddenAttributes', 'class');
         $config->set('Cache.SerializerPath', $directory);
         $config->set('HTML.SafeIframe', true);
         $config->set('URI.SafeIframeRegexp', '%^(?:https?:)?//(' . 'www.youtube(?:-nocookie)?.com/embed/|' . 'player.vimeo.com/video/)%');
         //allow YouTube and Vimeo
         return new \HTMLPurifier($config);
     });
     $container->registerService('Enhancer', function ($c) {
         $enhancer = new Enhancer();
         // register simple enhancers from config json file
         $xpathEnhancerConfig = file_get_contents(__DIR__ . '/../articleenhancer/xpathenhancers.json');
         foreach (json_decode($xpathEnhancerConfig, true) as $feed => $config) {
             $articleEnhancer = new XPathArticleEnhancer($c->query('SimplePieAPIFactory'), $config, $c->query('Config'));
             $enhancer->registerEnhancer($feed, $articleEnhancer);
         }
         $regexEnhancerConfig = file_get_contents(__DIR__ . '/../articleenhancer/regexenhancers.json');
         foreach (json_decode($regexEnhancerConfig, true) as $feed => $config) {
             foreach ($config as $matchArticleUrl => $regex) {
                 $articleEnhancer = new RegexArticleEnhancer($matchArticleUrl, $regex);
                 $enhancer->registerEnhancer($feed, $articleEnhancer);
             }
         }
         return $enhancer;
     });
     /**
      * Fetchers
      */
     $container->registerService('Fetcher', function ($c) {
         $fetcher = new Fetcher();
         // register fetchers in order
         // the most generic fetcher should be the last one
         $fetcher->registerFetcher($c->query('FeedFetcher'));
         return $fetcher;
     });
     $container->registerService('FeedFetcher', function ($c) {
         return new FeedFetcher($c->query('SimplePieAPIFactory'), $c->query('FaviconFetcher'), $c->query('TimeFactory'), $c->query('simplePieCacheDirectory'), $c->query('Config'));
     });
     $container->registerService('StatusFlag', function () {
         return new StatusFlag();
     });
     $container->registerService('OPMLExporter', function () {
         return new OPMLExporter();
     });
     $container->registerService('Updater', function ($c) {
         return new Updater($c->query('FolderBusinessLayer'), $c->query('FeedBusinessLayer'), $c->query('ItemBusinessLayer'));
     });
     $container->registerService('SimplePieAPIFactory', function () {
         return new SimplePieAPIFactory();
     });
     $container->registerService('FaviconFetcher', function ($c) {
         return new FaviconFetcher($c->query('SimplePieAPIFactory'), $c->query('Config'));
     });
     /** 
      * Middleware
      */
     $container->registerService('CORSMiddleware', function ($c) {
         return new CORSMiddleware($c->query('Request'));
     });
     $container->registerMiddleWare('CORSMiddleware');
 }