mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
add post-submit checks to smtp & db
This commit is contained in:
parent
68a84df0dd
commit
1d0f5b2ad7
@ -67,6 +67,32 @@ class SetupController extends Controller
|
||||
return response('Oops, something went wrong. Check your logs.'); /* We should never reach this block, but just in case. */
|
||||
}
|
||||
|
||||
try {
|
||||
$db = SystemHealth::dbCheck($request);
|
||||
|
||||
if ($db['success'] == false) {
|
||||
throw new \Exception($db['message']);
|
||||
}
|
||||
} catch(\Exception $e) {
|
||||
return response([
|
||||
'message' => 'Oops, connection to database was not successful.',
|
||||
'error' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
|
||||
try {
|
||||
$smtp = SystemHealth::testMailServer($request);
|
||||
|
||||
if ($smtp['success'] == false) {
|
||||
throw new \Exception($smtp['message']);
|
||||
}
|
||||
} catch (\Exception $e) {
|
||||
return response([
|
||||
'message' => 'Oops, connection to mail server was not successful.',
|
||||
'error' => $e->getMessage(),
|
||||
]);
|
||||
}
|
||||
|
||||
$mail_driver = $request->input('mail_driver');
|
||||
|
||||
$url = $request->input('url');
|
||||
@ -166,15 +192,13 @@ class SetupController extends Controller
|
||||
*/
|
||||
public function checkMail(CheckMailRequest $request)
|
||||
{
|
||||
info($request->all());
|
||||
|
||||
try {
|
||||
$response_array = SystemHealth::testMailServer($request);
|
||||
$response = SystemHealth::testMailServer($request);
|
||||
|
||||
if (count($response_array) == 0) {
|
||||
if ($response['success']) {
|
||||
return response([], 200);
|
||||
} else {
|
||||
return response()->json(['message' => $response_array[0]], 400);
|
||||
return response()->json(['message' => $response['message']], 400);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
info(['message' => $e->getMessage(), 'action' => 'SetupController::checkMail()']);
|
||||
@ -185,10 +209,10 @@ class SetupController extends Controller
|
||||
|
||||
private function failsafeMailCheck($request)
|
||||
{
|
||||
$response_array = SystemHealth::testMailServer($request);
|
||||
$response = SystemHealth::testMailServer($request);
|
||||
|
||||
if ($response_array instanceof Response) {
|
||||
return true;
|
||||
if ($response['success']) {
|
||||
true;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
@ -160,7 +160,7 @@ class SystemHealth
|
||||
{
|
||||
$result = ['success' => false];
|
||||
|
||||
if ($request && $request instanceof CheckDatabaseRequest) {
|
||||
if ($request) {
|
||||
config(['database.connections.db-ninja-01.host'=> $request->input('db_host')]);
|
||||
config(['database.connections.db-ninja-01.database'=> $request->input('db_database')]);
|
||||
config(['database.connections.db-ninja-01.username'=> $request->input('db_username')]);
|
||||
@ -191,6 +191,7 @@ class SystemHealth
|
||||
} catch (Exception $e) {
|
||||
$result[] = [config('database.connections.'.config('database.default').'.database') => false];
|
||||
$result['success'] = false;
|
||||
$result['message'] = $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -209,7 +210,7 @@ class SystemHealth
|
||||
return [];
|
||||
}
|
||||
|
||||
if ($request && $request instanceof CheckMailRequest) {
|
||||
if ($request) {
|
||||
config(['mail.driver' => $request->input('mail_driver')]);
|
||||
config(['mail.host' => $request->input('mail_host')]);
|
||||
config(['mail.port' => $request->input('mail_port')]);
|
||||
@ -223,21 +224,10 @@ class SystemHealth
|
||||
try {
|
||||
Mail::to(config('mail.from.address'))->send(new TestMailServer('Email Server Works!', config('mail.from.address')));
|
||||
} catch (Exception $e) {
|
||||
return [$e->getMessage()];
|
||||
return ['success' => false, 'message' => $e->getMessage()];
|
||||
}
|
||||
|
||||
/*
|
||||
* 'message' => 'count(): Parameter must be an array or an object that implements Countable',
|
||||
* 'action' => 'SetupController::checkMail()',
|
||||
*
|
||||
* count(Mail::failures())
|
||||
*/
|
||||
|
||||
if (Mail::failures() > 0) {
|
||||
return Mail::failures();
|
||||
}
|
||||
|
||||
return response()->json(['message' => 'Success'], 200);
|
||||
return ['success' => true];
|
||||
}
|
||||
|
||||
private static function checkEnvWritable()
|
||||
|
Loading…
x
Reference in New Issue
Block a user