Browse Source

Block install without CAN_INSTALL file

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
tags/v16.0.0RC1
Roeland Jago Douma 5 years ago
parent
commit
7e7146db7f
No account linked to committer's email address

+ 0
- 0
config/CAN_INSTALL View File


+ 16
- 0
core/Controller/SetupController.php View File

@@ -62,6 +62,11 @@ class SetupController {
$post['dbpass'] = $post['dbpassword'];
}

if (!is_file(\OC::$configDir.'/CAN_INSTALL')) {
$this->displaySetupForbidden();
return;
}

if(isset($post['install']) AND $post['install']=='true') {
// We have to launch the installation process :
$e = $this->setupHelper->install($post);
@@ -79,6 +84,10 @@ class SetupController {
}
}

private function displaySetupForbidden() {
\OC_Template::printGuestPage('', 'installation_forbidden');
}

public function display($post) {
$defaults = array(
'adminlogin' => '',
@@ -101,6 +110,13 @@ class SetupController {
unlink($this->autoConfigFile);
}
\OC::$server->getIntegrityCodeChecker()->runInstanceVerification();

if (\OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir.'/CAN_INSTALL')) {
if (!unlink(\OC::$configDir.'/CAN_INSTALL')) {
\OC_Template::printGuestPage('', 'installation_incomplete');
}
}

\OC_Util::redirectToDefaultPage();
}


+ 6
- 0
core/templates/installation_forbidden.php View File

@@ -0,0 +1,6 @@
<div class="error">
<h2><?php p($l->t('Error')) ?></h2>
<p>
<?php p($l->t('It looks like you are trying to reinstall your Nextcloud. However the file CAN_INSTALL is missing from your config directory. Please create the file CAN_INSTALL in your config folder to continue.')) ?>
</p>
</div>

+ 6
- 0
core/templates/installation_incomplete.php View File

@@ -0,0 +1,6 @@
<div class="error">
<h2><?php p($l->t('Error')) ?></h2>
<p>
<?php p($l->t('Could not remove CAN_INSTALL from the config folder. Please remove this file manually.')) ?>
</p>
</div>

+ 7
- 0
lib/private/Updater.php View File

@@ -111,6 +111,13 @@ class Updater extends BasicEmitter {
$this->emit('\OC\Updater', 'maintenanceEnabled');
}

// Clear CAN_INSTALL file if not on git
if (\OC_Util::getChannel() !== 'git' && is_file(\OC::$configDir.'/CAN_INSTALL')) {
if (!unlink(\OC::$configDir . '/CAN_INSTALL')) {
$this->log->error('Could not cleanup CAN_INSTALL from your config folder. Please remove this file manually.');
}
}

$installedVersion = $this->config->getSystemValue('version', '0.0.0');
$currentVersion = implode('.', \OCP\Util::getVersion());


Loading…
Cancel
Save