diff --git a/client/src/app/install/install-step-4-user-system.js b/client/src/app/install/install-step-4-user-system.js
index 528efd8a..d4ae18c0 100644
--- a/client/src/app/install/install-step-4-user-system.js
+++ b/client/src/app/install/install-step-4-user-system.js
@@ -30,7 +30,6 @@ class InstallStep4UserSystem extends React.Component {
{i18n('NEXT')}
-
@@ -46,17 +45,12 @@ class InstallStep4UserSystem extends React.Component {
});
}
- onPreviousClick(event) {
- event.preventDefault();
- history.push('/install/step-3');
- }
-
onSubmit(form) {
this.props.dispatch(ConfigActions.updateUserSystemSettings({
'user-system-enabled': form['user-system-enabled'] * 1,
'registration': form['registration'] * 1
}));
-
+
history.push('/install/step-5');
}
@@ -69,4 +63,4 @@ export default connect((store) => {
return {
language: store.config.language
};
-})(InstallStep4UserSystem);
\ No newline at end of file
+})(InstallStep4UserSystem);
diff --git a/server/controllers/system/check-requirements.php b/server/controllers/system/check-requirements.php
index 5eb35cb2..1958460f 100755
--- a/server/controllers/system/check-requirements.php
+++ b/server/controllers/system/check-requirements.php
@@ -30,7 +30,9 @@ class CheckRequirementsController extends Controller {
}
public function handler() {
- $configWritable = !!fopen('config.php', 'w+');
+ if(InstallationDoneController::isInstallationDone()) {
+ throw new Exception(ERRORS::INIT_SETTINGS_DONE);
+ }
Response::respondSuccess([
'phpVersion' => [
@@ -50,8 +52,8 @@ class CheckRequirementsController extends Controller {
],
'files' => [
'name' => 'Folder: /api/files',
- 'value' => $configWritable ? 'Writable' : 'Not writable',
- 'ok' => $configWritable
+ 'value' => is_writable('files') ? 'Writable' : 'Not writable',
+ 'ok' => is_writable('files')
]
]);
}
@@ -64,4 +66,4 @@ class CheckRequirementsController extends Controller {
else if($currentVersion[0] < $requiredVersion[0]) return false;
else return $currentVersion[1] >= $requiredVersion[1];
}
-}
\ No newline at end of file
+}
diff --git a/server/controllers/system/init-database.php b/server/controllers/system/init-database.php
index dd21c026..d777add9 100755
--- a/server/controllers/system/init-database.php
+++ b/server/controllers/system/init-database.php
@@ -48,9 +48,7 @@ class InitDatabaseController extends Controller {
$dbUser = Controller::request('dbUser');
$dbPass = Controller::request('dbPassword');
- if(!defined('MYSQL_HOST')) {
- RedBean::setup('mysql:host=' . $dbHost, $dbUser, $dbPass);
- }
+ RedBean::setup('mysql:host=' . $dbHost, $dbUser, $dbPass);
if($dbName) {
RedBean::addDatabase($dbName, 'mysql:host='. $dbHost . ';dbname=' . $dbName, $dbUser, $dbPass);
@@ -81,4 +79,4 @@ class InitDatabaseController extends Controller {
fclose($configFile);
Response::respondSuccess();
}
-}
\ No newline at end of file
+}
diff --git a/tests/system/init-settings.rb b/tests/system/init-settings.rb
index 920815dc..4a10c846 100644
--- a/tests/system/init-settings.rb
+++ b/tests/system/init-settings.rb
@@ -1,4 +1,17 @@
describe '/system/init-settings' do
+ it 'should prevent initing database if already called' do
+ result = request('/system/init-database', {})
+ (result['status']).should.equal('fail')
+ (result['message']).should.equal('INIT_SETTINGS_DONE')
+
+ result = request('/system/check-requirements', {})
+ (result['status']).should.equal('success')
+
+ result = request('/system/init-database', {})
+ (result['status']).should.equal('fail')
+ (result['message']).should.equal('INIT_SETTINGS_DONE')
+ end
+
it 'should initialize correctly' do
result = request('/system/init-settings', {
'user-system-enabled' => true,
@@ -25,4 +38,4 @@ describe '/system/init-settings' do
(result['status']).should.equal('success')
end
-end
\ No newline at end of file
+end