Merge pull request #5104 from joshuadwire/v5-develop

Support pre-configured installs where setup doesn't allow changing DB config
This commit is contained in:
David Bomba 2021-03-12 21:00:58 +11:00 committed by GitHub
commit aef31d8193
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 40 additions and 21 deletions

View File

@ -125,6 +125,15 @@ class SetupController extends Controller
'DB_CONNECTION' => 'db-ninja-01',
];
if(config('ninja.preconfigured_install')){
// Database connection was already configured. Don't let the user override it.
unset($env_values['DB_HOST1']);
unset($env_values['DB_PORT1']);
unset($env_values['DB_DATABASE1']);
unset($env_values['DB_USERNAME1']);
unset($env_values['DB_PASSWORD1']);
}
try {
foreach ($env_values as $property => $value) {

View File

@ -33,11 +33,15 @@ class CheckDatabaseRequest extends Request
*/
public function rules()
{
return [
'db_host' => ['required'],
'db_port' => ['required'],
'db_database' => ['required'],
'db_username' => ['required'],
];
}
if ( config( 'ninja.preconfigured_install' ) ) {
return [];
}
return [
'db_host' => [ 'required' ],
'db_port' => [ 'required' ],
'db_database' => [ 'required' ],
'db_username' => [ 'required' ],
];
}
}

View File

@ -150,7 +150,7 @@ class SystemHealth
{
$result = ['success' => false];
if ($request) {
if ($request && !config('ninja.preconfigured_install')) {
config(['database.connections.db-ninja-01.host' => $request->input('db_host')]);
config(['database.connections.db-ninja-01.port' => $request->input('db_port')]);
config(['database.connections.db-ninja-01.database' => $request->input('db_database')]);

View File

@ -36,6 +36,7 @@ return [
'is_docker' => env('IS_DOCKER', false),
'sentry_dsn' => env('SENTRY_LARAVEL_DSN', 'https://9b4e15e575214354a7d666489783904a@sentry.invoicing.co/6'),
'environment' => env('NINJA_ENVIRONMENT', 'selfhost'), // 'hosted', 'development', 'selfhost', 'reseller'
'preconfigured_install' => env('PRECONFIGURED_INSTALL',false),
// Settings used by invoiceninja.com

File diff suppressed because one or more lines are too long

View File

@ -16,6 +16,6 @@
"/js/clients/quotes/approve.js": "/js/clients/quotes/approve.js?id=85bcae0a646882e56b12",
"/js/clients/shared/multiple-downloads.js": "/js/clients/shared/multiple-downloads.js?id=5c35d28cf0a3286e7c45",
"/js/clients/shared/pdf.js": "/js/clients/shared/pdf.js?id=fc3055d6a099f523ea98",
"/js/setup/setup.js": "/js/setup/setup.js?id=8c46629d6d43a29fce69",
"/js/setup/setup.js": "/js/setup/setup.js?id=5962ec6bcebeaac71d1b",
"/css/card-js.min.css": "/css/card-js.min.css?id=62afeb675235451543ad"
}

View File

@ -23,18 +23,21 @@ class Setup {
}
handleDatabaseCheck() {
let url = document.querySelector('meta[name=setup-db-check]').content;
let url = document.querySelector('meta[name=setup-db-check]').content,
data = {};
let data = {
db_host: document.querySelector('input[name="db_host"]').value,
db_port: document.querySelector('input[name="db_port"]').value,
db_database: document.querySelector('input[name="db_database"]')
.value,
db_username: document.querySelector('input[name="db_username"]')
.value,
db_password: document.querySelector('input[name="db_password"]')
.value,
};
if (document.querySelector('input[name="db_host"]')) {
data = {
db_host: document.querySelector('input[name="db_host"]').value,
db_port: document.querySelector('input[name="db_port"]').value,
db_database: document.querySelector('input[name="db_database"]')
.value,
db_username: document.querySelector('input[name="db_username"]')
.value,
db_password: document.querySelector('input[name="db_password"]')
.value,
};
}
this.checkDbButton.disabled = true;

View File

@ -8,6 +8,7 @@
</div>
<div>
<dl>
@if (! config('ninja.preconfigured_install'))
<div class="bg-gray-50 px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6 sm:flex sm:items-center">
<dt class="text-sm leading-5 font-medium text-gray-500">
You can use following commands to create user & database.
@ -73,6 +74,7 @@ FLUSH PRIVILEGES;
<input type="password" class="input w-full" name="db_password" value="{{ old('db_password') ?: 'ninja' }}">
</dd>
</div>
@endif
<div class="bg-white px-4 py-5 sm:grid sm:grid-cols-3 sm:gap-4 sm:px-6 sm:flex sm:items-center">
<dt class="text-sm leading-5 font-medium text-gray-500">
<button type="button" class="button button-primary bg-blue-600 py-2 px-3 text-xs" id="test-db-connection">