Block install without CAN_INSTALL file

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2019-04-04 23:32:00 +02:00
parent 7641a1589f
commit 7e7146db7f
No known key found for this signature in database
GPG key ID: F941078878347C0C
5 changed files with 35 additions and 0 deletions

0
config/CAN_INSTALL Normal file
View file

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();
}

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>

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>

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());