Browse Source
Block install without CAN_INSTALL file
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
pull/14965/head
Roeland Jago Douma
7 years ago
No known key found for this signature in database
GPG Key ID: F941078878347C0C
5 changed files with
35 additions and
0 deletions
config/CAN_INSTALL
core/Controller/SetupController.php
core/templates/installation_forbidden.php
core/templates/installation_incomplete.php
lib/private/Updater.php
@ -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 ();
}
@ -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 >
@ -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 >
@ -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 ());