mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-03 14:24:34 -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. */
|
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');
|
$mail_driver = $request->input('mail_driver');
|
||||||
|
|
||||||
$url = $request->input('url');
|
$url = $request->input('url');
|
||||||
@ -166,15 +192,13 @@ class SetupController extends Controller
|
|||||||
*/
|
*/
|
||||||
public function checkMail(CheckMailRequest $request)
|
public function checkMail(CheckMailRequest $request)
|
||||||
{
|
{
|
||||||
info($request->all());
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$response_array = SystemHealth::testMailServer($request);
|
$response = SystemHealth::testMailServer($request);
|
||||||
|
|
||||||
if (count($response_array) == 0) {
|
if ($response['success']) {
|
||||||
return response([], 200);
|
return response([], 200);
|
||||||
} else {
|
} else {
|
||||||
return response()->json(['message' => $response_array[0]], 400);
|
return response()->json(['message' => $response['message']], 400);
|
||||||
}
|
}
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
info(['message' => $e->getMessage(), 'action' => 'SetupController::checkMail()']);
|
info(['message' => $e->getMessage(), 'action' => 'SetupController::checkMail()']);
|
||||||
@ -185,10 +209,10 @@ class SetupController extends Controller
|
|||||||
|
|
||||||
private function failsafeMailCheck($request)
|
private function failsafeMailCheck($request)
|
||||||
{
|
{
|
||||||
$response_array = SystemHealth::testMailServer($request);
|
$response = SystemHealth::testMailServer($request);
|
||||||
|
|
||||||
if ($response_array instanceof Response) {
|
if ($response['success']) {
|
||||||
return true;
|
true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -160,7 +160,7 @@ class SystemHealth
|
|||||||
{
|
{
|
||||||
$result = ['success' => false];
|
$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.host'=> $request->input('db_host')]);
|
||||||
config(['database.connections.db-ninja-01.database'=> $request->input('db_database')]);
|
config(['database.connections.db-ninja-01.database'=> $request->input('db_database')]);
|
||||||
config(['database.connections.db-ninja-01.username'=> $request->input('db_username')]);
|
config(['database.connections.db-ninja-01.username'=> $request->input('db_username')]);
|
||||||
@ -191,6 +191,7 @@ class SystemHealth
|
|||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
$result[] = [config('database.connections.'.config('database.default').'.database') => false];
|
$result[] = [config('database.connections.'.config('database.default').'.database') => false];
|
||||||
$result['success'] = false;
|
$result['success'] = false;
|
||||||
|
$result['message'] = $e->getMessage();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -209,7 +210,7 @@ class SystemHealth
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($request && $request instanceof CheckMailRequest) {
|
if ($request) {
|
||||||
config(['mail.driver' => $request->input('mail_driver')]);
|
config(['mail.driver' => $request->input('mail_driver')]);
|
||||||
config(['mail.host' => $request->input('mail_host')]);
|
config(['mail.host' => $request->input('mail_host')]);
|
||||||
config(['mail.port' => $request->input('mail_port')]);
|
config(['mail.port' => $request->input('mail_port')]);
|
||||||
@ -223,21 +224,10 @@ class SystemHealth
|
|||||||
try {
|
try {
|
||||||
Mail::to(config('mail.from.address'))->send(new TestMailServer('Email Server Works!', config('mail.from.address')));
|
Mail::to(config('mail.from.address'))->send(new TestMailServer('Email Server Works!', config('mail.from.address')));
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
return [$e->getMessage()];
|
return ['success' => false, 'message' => $e->getMessage()];
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
return ['success' => true];
|
||||||
* '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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function checkEnvWritable()
|
private static function checkEnvWritable()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user