Fix webbased upgrade routine.

This commit is contained in:
James Cole 2019-02-04 20:35:46 +01:00
parent def95df49e
commit 0e1da3f797
4 changed files with 46 additions and 0 deletions

View File

@ -153,6 +153,34 @@ class InstallController extends Controller
return response()->json(['error' => false, 'message' => 'OK']);
}
/**
* Do database decrypt.
*
* @return \Illuminate\Http\JsonResponse
*/
public function decrypt(): JsonResponse
{
if ($this->hasForbiddenFunctions()) {
return response()->json(['error' => true, 'message' => self::FORBIDDEN_ERROR]);
}
try {
Log::debug('Am now calling decrypt database routine...');
Artisan::call('firefly:decrypt-all');
Log::debug(Artisan::output());
} catch (Exception $e) {
Log::error($e->getMessage());
Log::error($e->getTraceAsString());
if (strpos($e->getMessage(), 'open_basedir restriction in effect')) {
return response()->json(['error' => true, 'message' => self::BASEDIR_ERROR]);
}
return response()->json(['error' => true, 'message' => self::OTHER_ERROR . ' ' . $e->getMessage()]);
}
return response()->json(['error' => false, 'message' => 'OK']);
}
/**
* Do database verification.
*

View File

@ -30,6 +30,22 @@ function startMigration() {
$('#status-box').html('<i class="fa fa-spin fa-spinner"></i> Setting up DB...');
$.post(migrateUri, {_token: token}).done(function (data) {
if(data.error === false) {
// move to decrypt routine.
startDecryption();
} else {
displaySoftFail(data.message);
}
}).fail(function () {
$('#status-box').html('<i class="fa fa-warning"></i> Migration failed! See log files :(');
});
}
function startDecryption() {
$('#status-box').html('<i class="fa fa-spin fa-spinner"></i> Setting up DB #2...');
$.post(decryptUri, {_token: token}).done(function (data) {
if(data.error === false) {
// move to decrypt routine.
startPassport();
} else {
displaySoftFail(data.message);

View File

@ -19,6 +19,7 @@
var keysUri = '{{ route('installer.keys') }}';
var upgradeUri = '{{ route('installer.upgrade') }}';
var verifyUri = '{{ route('installer.verify') }}';
var decryptUri = '{{ route('installer.decrypt') }}';
var homeUri = '{{ route('home') }}';
</script>
<script type="text/javascript" src="v1/js/ff/install/index.js"></script>

View File

@ -30,6 +30,7 @@ Route::group(
Route::post('keys', ['uses' => 'InstallController@keys', 'as' => 'keys']);
Route::post('upgrade', ['uses' => 'InstallController@upgrade', 'as' => 'upgrade']);
Route::post('verify', ['uses' => 'InstallController@verify', 'as' => 'verify']);
Route::post('decrypt', ['uses' => 'InstallController@decrypt', 'as' => 'decrypt']);
}
);