diff --git a/lib/private/Setup.php b/lib/private/Setup.php index 196ae8a8bc..23c66f98b7 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -367,7 +367,7 @@ class Setup { \OC_User::login($username, $password); //guess what this does - \OC_Installer::installShippedApps(); + Installer::installShippedApps(); // create empty file in data dir, so we can later find // out that this is indeed an ownCloud data directory diff --git a/lib/private/Updater.php b/lib/private/Updater.php index 093ebebbbe..7ca3cd0936 100644 --- a/lib/private/Updater.php +++ b/lib/private/Updater.php @@ -36,7 +36,6 @@ namespace OC; use OC\Hooks\BasicEmitter; use OC\IntegrityCheck\Checker; use OC_App; -use OC_Installer; use OCP\IConfig; use OC\Setup; use OCP\ILogger; @@ -251,7 +250,7 @@ class Updater extends BasicEmitter { // install new shipped apps on upgrade OC_App::loadApps('authentication'); - $errors = OC_Installer::installShippedApps(true); + $errors = Installer::installShippedApps(true); foreach ($errors as $appId => $exception) { /** @var \Exception $exception */ $this->log->logException($exception, ['app' => $appId]); @@ -443,11 +442,11 @@ class Updater extends BasicEmitter { private function upgradeAppStoreApps(array $disabledApps) { foreach($disabledApps as $app) { try { - if (OC_Installer::isUpdateAvailable($app)) { + if (Installer::isUpdateAvailable($app)) { $ocsId = \OC::$server->getConfig()->getAppValue($app, 'ocsid', ''); $this->emit('\OC\Updater', 'upgradeAppStoreApp', array($app)); - OC_Installer::updateAppByOCSId($ocsId); + Installer::updateAppByOCSId($ocsId); } } catch (\Exception $ex) { $this->log->logException($ex, ['app' => 'core']); diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index a1d4b7ce26..42bb441228 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -46,6 +46,7 @@ */ use OC\App\DependencyAnalyzer; use OC\App\Platform; +use OC\Installer; use OC\OCSClient; use OC\Repair; @@ -304,7 +305,7 @@ class OC_App { */ public static function enable($app, $groups = null) { self::$enabledAppsCache = array(); // flush - if (!OC_Installer::isInstalled($app)) { + if (!Installer::isInstalled($app)) { $app = self::installApp($app); } @@ -340,7 +341,7 @@ class OC_App { // Replace spaces in download link without encoding entire URL $download['downloadlink'] = str_replace(' ', '%20', $download['downloadlink']); $info = array('source' => 'http', 'href' => $download['downloadlink'], 'appdata' => $appData); - $app = OC_Installer::installApp($info); + $app = Installer::installApp($info); } return $app; } @@ -354,7 +355,7 @@ class OC_App { return false; } - return OC_Installer::removeApp($app); + return Installer::removeApp($app); } /** @@ -827,7 +828,7 @@ class OC_App { $info['removable'] = true; } - $info['update'] = ($includeUpdateInfo) ? OC_Installer::isUpdateAvailable($app) : null; + $info['update'] = ($includeUpdateInfo) ? Installer::isUpdateAvailable($app) : null; $appPath = self::getAppPath($app); if($appPath !== false) { @@ -1073,7 +1074,7 @@ class OC_App { if ($appData && version_compare($shippedVersion, $appData['version'], '<')) { $app = self::downloadApp($app); } else { - $app = OC_Installer::installShippedApp($app); + $app = Installer::installShippedApp($app); } } else { // Maybe the app is already installed - compare the version in this diff --git a/lib/private/legacy/installer.php b/lib/private/legacy/installer.php index 2bf95f3319..cc80423b7d 100644 --- a/lib/private/legacy/installer.php +++ b/lib/private/legacy/installer.php @@ -37,15 +37,19 @@ * */ +namespace OC; + use OC\App\CodeChecker\CodeChecker; use OC\App\CodeChecker\EmptyCheck; use OC\App\CodeChecker\PrivateCheck; -use OC\OCSClient; +use OC_App; +use OC_DB; +use OC_Helper; /** * This class provides the functionality needed to install, update and remove plugins/apps */ -class OC_Installer { +class Installer { /** * @@ -138,15 +142,15 @@ class OC_Installer { OC_App::executeRepairSteps($appId, $appData['repair-steps']['install']); //set the installed version - \OC::$server->getAppConfig()->setValue($info['id'], 'installed_version', OC_App::getAppVersion($info['id'])); - \OC::$server->getAppConfig()->setValue($info['id'], 'enabled', 'no'); + \OC::$server->getConfig()->setAppValue($info['id'], 'installed_version', OC_App::getAppVersion($info['id'])); + \OC::$server->getConfig()->setAppValue($info['id'], 'enabled', 'no'); - //set remote/public handelers + //set remote/public handlers foreach($info['remote'] as $name=>$path) { - OCP\Config::setAppValue('core', 'remote_'.$name, $info['id'].'/'.$path); + \OC::$server->getConfig()->setAppValue('core', 'remote_'.$name, $info['id'].'/'.$path); } foreach($info['public'] as $name=>$path) { - OCP\Config::setAppValue('core', 'public_'.$name, $info['id'].'/'.$path); + \OC::$server->getConfig()->setAppValue('core', 'public_'.$name, $info['id'].'/'.$path); } OC_App::setAppTypes($info['id']); @@ -161,15 +165,15 @@ class OC_Installer { * * Checks whether or not an app is installed, i.e. registered in apps table. */ - public static function isInstalled( $app ) { - return (\OC::$server->getAppConfig()->getValue($app, "installed_version") !== null); + public static function isInstalled( $app ) { + return (\OC::$server->getConfig()->getAppValue($app, "installed_version", null) !== null); } /** * @brief Update an application * @param array $info * @param bool $isShipped - * @throws Exception + * @throws \Exception * @return bool * * This function could work like described below, but currently it disables and then @@ -232,7 +236,7 @@ class OC_Installer { * * @param integer $ocsId * @return bool - * @throws Exception + * @throws \Exception */ public static function updateAppByOCSId($ocsId) { $ocsClient = new OCSClient( @@ -260,7 +264,7 @@ class OC_Installer { /** * @param array $data * @return array - * @throws Exception + * @throws \Exception */ public static function downloadApp($data = array()) { $l = \OC::$server->getL10N('lib'); @@ -296,7 +300,7 @@ class OC_Installer { $extractDir = \OC::$server->getTempManager()->getTemporaryFolder(); OC_Helper::rmdirr($extractDir); mkdir($extractDir); - if($archive=OC_Archive::open($path)) { + if($archive=\OC_Archive::open($path)) { $archive->extract($extractDir); } else { OC_Helper::rmdirr($extractDir); @@ -378,7 +382,7 @@ class OC_Installer { } // check the code for not allowed calls - if(!$isShipped && !OC_Installer::checkCode($extractDir)) { + if(!$isShipped && !Installer::checkCode($extractDir)) { OC_Helper::rmdirr($extractDir); throw new \Exception($l->t("App can't be installed because of not allowed code in the App")); } @@ -460,7 +464,7 @@ class OC_Installer { * The function will check if the app is already downloaded in the apps repository */ public static function isDownloaded( $name ) { - foreach(OC::$APPSROOTS as $dir) { + foreach(\OC::$APPSROOTS as $dir) { $dirToTest = $dir['path']; $dirToTest .= '/'; $dirToTest .= $name; @@ -494,7 +498,7 @@ class OC_Installer { OC_App::executeRepairSteps($appId, $appData['repair-steps']['uninstall']); } - if(OC_Installer::isDownloaded( $appId )) { + if(Installer::isDownloaded( $appId )) { $appDir=OC_App::getInstallPath() . '/' . $appId; OC_Helper::rmdirr($appDir); @@ -517,25 +521,25 @@ class OC_Installer { */ public static function installShippedApps($softErrors = false) { $errors = []; - foreach(OC::$APPSROOTS as $app_dir) { + foreach(\OC::$APPSROOTS as $app_dir) { if($dir = opendir( $app_dir['path'] )) { while( false !== ( $filename = readdir( $dir ))) { if( substr( $filename, 0, 1 ) != '.' and is_dir($app_dir['path']."/$filename") ) { if( file_exists( $app_dir['path']."/$filename/appinfo/info.xml" )) { - if(!OC_Installer::isInstalled($filename)) { + if(!Installer::isInstalled($filename)) { $info=OC_App::getAppInfo($filename); $enabled = isset($info['default_enable']); if (($enabled || in_array($filename, \OC::$server->getAppManager()->getAlwaysEnabledApps())) && \OC::$server->getConfig()->getAppValue($filename, 'enabled') !== 'no') { if ($softErrors) { try { - OC_Installer::installShippedApp($filename); + Installer::installShippedApp($filename); } catch (\Doctrine\DBAL\Exception\TableExistsException $e) { $errors[$filename] = $e; continue; } } else { - OC_Installer::installShippedApp($filename); + Installer::installShippedApp($filename); } \OC::$server->getConfig()->setAppValue($filename, 'enabled', 'yes'); } diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php index 8521914884..7ac32468fe 100644 --- a/settings/ajax/updateapp.php +++ b/settings/ajax/updateapp.php @@ -50,7 +50,7 @@ $appId = OC_App::cleanAppId($appId); $config = \OC::$server->getConfig(); $config->setSystemValue('maintenance', true); try { - $result = OC_Installer::updateAppByOCSId($appId); + $result = \OC\Installer::updateAppByOCSId($appId); $config->setSystemValue('maintenance', false); } catch(Exception $ex) { $config->setSystemValue('maintenance', false); diff --git a/tests/lib/installer.php b/tests/lib/InstallerTest.php similarity index 74% rename from tests/lib/installer.php rename to tests/lib/InstallerTest.php index ca210ba31e..e1c17b841a 100644 --- a/tests/lib/installer.php +++ b/tests/lib/InstallerTest.php @@ -6,7 +6,12 @@ * See the COPYING-README file. */ -class Test_Installer extends \Test\TestCase { +namespace Test; + + +use OC\Installer; + +class InstallerTest extends TestCase { private static $appid = 'testapp'; private $appstore; @@ -17,11 +22,11 @@ class Test_Installer extends \Test\TestCase { $config = \OC::$server->getConfig(); $this->appstore = $config->setSystemValue('appstoreenabled', true); $config->setSystemValue('appstoreenabled', true); - OC_Installer::removeApp(self::$appid); + Installer::removeApp(self::$appid); } protected function tearDown() { - OC_Installer::removeApp(self::$appid); + Installer::removeApp(self::$appid); \OC::$server->getConfig()->setSystemValue('appstoreenabled', $this->appstore); parent::tearDown(); @@ -33,7 +38,7 @@ class Test_Installer extends \Test\TestCase { $pathOfTestApp .= 'testapp.zip'; $tmp = \OC::$server->getTempManager()->getTemporaryFile('.zip'); - OC_Helper::copyr($pathOfTestApp, $tmp); + \OC_Helper::copyr($pathOfTestApp, $tmp); $data = array( 'path' => $tmp, @@ -44,8 +49,8 @@ class Test_Installer extends \Test\TestCase { ] ); - OC_Installer::installApp($data); - $isInstalled = OC_Installer::isInstalled(self::$appid); + Installer::installApp($data); + $isInstalled = Installer::isInstalled(self::$appid); $this->assertTrue($isInstalled); } @@ -56,7 +61,7 @@ class Test_Installer extends \Test\TestCase { $pathOfOldTestApp .= 'testapp.zip'; $oldTmp = \OC::$server->getTempManager()->getTemporaryFile('.zip'); - OC_Helper::copyr($pathOfOldTestApp, $oldTmp); + \OC_Helper::copyr($pathOfOldTestApp, $oldTmp); $oldData = array( 'path' => $oldTmp, @@ -72,7 +77,7 @@ class Test_Installer extends \Test\TestCase { $pathOfNewTestApp .= 'testapp2.zip'; $newTmp = \OC::$server->getTempManager()->getTemporaryFile('.zip'); - OC_Helper::copyr($pathOfNewTestApp, $newTmp); + \OC_Helper::copyr($pathOfNewTestApp, $newTmp); $newData = array( 'path' => $newTmp, @@ -83,11 +88,11 @@ class Test_Installer extends \Test\TestCase { ] ); - OC_Installer::installApp($oldData); - $oldVersionNumber = OC_App::getAppVersion(self::$appid); + Installer::installApp($oldData); + $oldVersionNumber = \OC_App::getAppVersion(self::$appid); - OC_Installer::updateApp($newData); - $newVersionNumber = OC_App::getAppVersion(self::$appid); + Installer::updateApp($newData); + $newVersionNumber = \OC_App::getAppVersion(self::$appid); $this->assertNotEquals($oldVersionNumber, $newVersionNumber); }