summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2015-02-03 00:52:04 +0100
committerMorris Jobke <hey@morrisjobke.de>2015-02-03 14:03:43 +0100
commitd70160c6077ca017d6cb7d61f066fe33e3b1e081 (patch)
treee30e0972bc535e5708ba0f12b24d6bd7d5e4ce8e /lib
parenta7eedf014933277ff392824e1a6e62b041da58f8 (diff)
downloadnextcloud-server-d70160c6077ca017d6cb7d61f066fe33e3b1e081.tar.gz
nextcloud-server-d70160c6077ca017d6cb7d61f066fe33e3b1e081.zip
enabled disabled files app in repair step
Diffstat (limited to 'lib')
-rw-r--r--lib/private/app.php2
-rw-r--r--lib/private/app/appmanager.php2
-rw-r--r--lib/private/repair.php2
-rw-r--r--lib/repair/enablefilesapp.php50
4 files changed, 54 insertions, 2 deletions
diff --git a/lib/private/app.php b/lib/private/app.php
index aa28e360570..60b644e58e2 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -322,7 +322,7 @@ class OC_App {
*/
public static function disable($app) {
if($app === 'files') {
- throw new \Exception("App 'files' can't be disabled.");
+ throw new \Exception("files can't be disabled.");
}
self::$enabledAppsCache = array(); // flush
// check if app is a shipped app or not. if not delete
diff --git a/lib/private/app/appmanager.php b/lib/private/app/appmanager.php
index 7527c93dae9..20a765e3434 100644
--- a/lib/private/app/appmanager.php
+++ b/lib/private/app/appmanager.php
@@ -135,7 +135,7 @@ class AppManager implements IAppManager {
*/
public function disableApp($appId) {
if($appId === 'files') {
- throw new \Exception("App 'files' can't be disabled.");
+ throw new \Exception("files can't be disabled.");
}
$this->appConfig->setValue($appId, 'enabled', 'no');
}
diff --git a/lib/private/repair.php b/lib/private/repair.php
index d9fd99707e8..c74283896fd 100644
--- a/lib/private/repair.php
+++ b/lib/private/repair.php
@@ -13,6 +13,7 @@ use OC\Hooks\Emitter;
use OC\Repair\AssetCache;
use OC\Repair\CleanTags;
use OC\Repair\Collation;
+use OC\Repair\EnableFilesApp;
use OC\Repair\FillETags;
use OC\Repair\InnoDB;
use OC\Repair\RepairConfig;
@@ -84,6 +85,7 @@ class Repair extends BasicEmitter {
new AssetCache(),
new FillETags(\OC_DB::getConnection()),
new CleanTags(\OC_DB::getConnection()),
+ new EnableFilesApp(\OC::$server->getConfig()),
);
}
diff --git a/lib/repair/enablefilesapp.php b/lib/repair/enablefilesapp.php
new file mode 100644
index 00000000000..a3298cf76b3
--- /dev/null
+++ b/lib/repair/enablefilesapp.php
@@ -0,0 +1,50 @@
+<?php
+/**
+ * Copyright (c) 2015 Morris Jobke <hey@morrisjobke.de>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Repair;
+
+use OC\Hooks\BasicEmitter;
+use OC\RepairStep;
+use OCP\IConfig;
+
+/**
+ * Class EnableFilesApp - enables files app if disabled
+ *
+ * TODO: remove this with ownCloud 8.1 - this isn't possible anymore with 8.0
+ *
+ * @package OC\Repair
+ */
+class EnableFilesApp extends BasicEmitter implements RepairStep {
+
+ /** @var IConfig */
+ protected $config;
+
+ /**
+ * @param IConfig $config
+ */
+ public function __construct(IConfig $config) {
+ $this->config = $config;
+ }
+
+ /**
+ * @return string
+ */
+ public function getName() {
+ return 'Re-enable file app';
+ }
+
+ /**
+ * Enables the files app if it is disabled
+ */
+ public function run() {
+ if ($this->config->getAppValue('files', 'enabled', 'no') !== 'yes') {
+ $this->config->setAppValue('files', 'enabled', 'yes');
+ $this->emit('\OC\Repair', 'info', ['Files app was disabled - re-enabled']);
+ }
+ }
+}