mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-24 02:14:21 -04:00
parent
581654141b
commit
7a13f688e7
2
.env.ci
2
.env.ci
@ -18,4 +18,4 @@ DB_PASSWORD=ninja
|
||||
DB_HOST=127.0.0.1
|
||||
NINJA_ENVIRONMENT=development
|
||||
COMPOSER_AUTH='{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}'
|
||||
TRAVIS=true
|
||||
TRAVIS=true
|
||||
|
1
.github/workflows/phpunit.yml
vendored
1
.github/workflows/phpunit.yml
vendored
@ -23,6 +23,7 @@ jobs:
|
||||
NINJA_ENVIRONMENT: development
|
||||
MULTI_DB_ENABLED: false
|
||||
TRAVIS: true
|
||||
MAIL_DRIVER: log
|
||||
|
||||
services:
|
||||
mariadb:
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Libraries\Account;
|
||||
use App\Models\Account;
|
||||
use App\Models\Company;
|
||||
use App\Models\Design;
|
||||
use App\Models\User;
|
||||
@ -305,8 +305,7 @@ class BaseController extends Controller
|
||||
if ((bool)$this->checkAppSetup() !== false) {
|
||||
$data = [];
|
||||
|
||||
if (Ninja::isSelfHost()) {
|
||||
$account = Account::all()->first();
|
||||
if (Ninja::isSelfHost() && $account = Account::all()->first()) {
|
||||
$data['report_errors'] = $account->report_errors;
|
||||
} else {
|
||||
$data['report_errors'] = true;
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\Setup\CheckDatabaseRequest;
|
||||
use App\Http\Requests\Setup\CheckMailRequest;
|
||||
use App\Http\Requests\Setup\StoreSetupRequest;
|
||||
use App\Jobs\Account\CreateAccount;
|
||||
use App\Models\Account;
|
||||
@ -39,16 +40,17 @@ class SetupController extends Controller
|
||||
|
||||
public function doSetup(StoreSetupRequest $request)
|
||||
{
|
||||
$_ENV['APP_KEY'] = config('app.key');
|
||||
$_ENV['APP_URL'] = $request->input('url');
|
||||
$_ENV['APP_DEBUG'] = $request->input('debug') ? 'true' : 'false';
|
||||
$_ENV['REQUIRE_HTTPS'] = $request->input('https') ? 'true' : 'false';
|
||||
$_ENV['DB_TYPE'] = 'mysql';
|
||||
$_ENV['DB_HOST1'] = $request->input('host');
|
||||
$_ENV['DB_DATABASE1'] = $request->input('db_username');
|
||||
$_ENV['DB_USERNAME1'] = $request->input('db_password');
|
||||
$_ENV['DB_DATABASE1'] = $request->input('database');
|
||||
$_ENV['DB_USERNAME1'] = $request->input('db_username');
|
||||
$_ENV['DB_PASSWORD1'] = $request->input('db_password');
|
||||
$_ENV['MAIL_DRIVER'] = $request->input('mail_driver');
|
||||
$_ENV['MAIL_PORT'] = $request->input('port');
|
||||
$_ENV['MAIL_PORT'] = $request->input('mail_port');
|
||||
$_ENV['MAIL_ENCRYPTION'] = $request->input('encryption');
|
||||
$_ENV['MAIL_HOST'] = $request->input('mail_host');
|
||||
$_ENV['MAIL_USERNAME'] = $request->input('mail_username');
|
||||
@ -62,7 +64,6 @@ class SetupController extends Controller
|
||||
$_ENV['SELF_UPDATER_MAILTO_ADDRESS'] = $request->input('mail_address');
|
||||
$_ENV['SELF_UPDATER_MAILTO_NAME'] = $request->input('mail_name');
|
||||
$_ENV['DB_CONNECTION'] = 'db-ninja-01';
|
||||
$_ENV['APP_DEBUG'] = false;
|
||||
|
||||
$config = '';
|
||||
|
||||
@ -76,16 +77,24 @@ class SetupController extends Controller
|
||||
$config .= "{$key}={$val}\n";
|
||||
}
|
||||
|
||||
/* Write the .env file */
|
||||
$filePath = base_path().'/.env';
|
||||
$fp = fopen($filePath, 'w');
|
||||
fwrite($fp, $config);
|
||||
fclose($fp);
|
||||
|
||||
/* We need this in some environments that do not have STDIN defined */
|
||||
define('STDIN',fopen("php://stdin","r"));
|
||||
|
||||
/* Make sure no stale connections are cached */
|
||||
\DB::purge('db-ninja-01');
|
||||
|
||||
/* Run migrations */
|
||||
Artisan::call('optimize');
|
||||
Artisan::call('migrate');
|
||||
Artisan::call('db:seed');
|
||||
Artisan::call('horizon');
|
||||
Artisan::call('migrate', ['--force' => true]);
|
||||
Artisan::call('db:seed', ['--force' => true]);
|
||||
|
||||
/* Create the first account. */
|
||||
if (Account::count() == 0) {
|
||||
$account = CreateAccount::dispatchNow($request->all());
|
||||
}
|
||||
@ -101,14 +110,11 @@ class SetupController extends Controller
|
||||
public function checkDB(CheckDatabaseRequest $request): Response
|
||||
{
|
||||
|
||||
if (Account::count() == 0) { /** This may not work, because we don't have 'account's table. */
|
||||
}
|
||||
|
||||
$status = SystemHealth::dbCheck($request);
|
||||
|
||||
info($status);
|
||||
|
||||
if (gettype($status) == 'array' && $status['success'] === true) {
|
||||
if (is_array($status) && $status['success'] === true) {
|
||||
return response([], 200);
|
||||
}
|
||||
|
||||
@ -120,23 +126,20 @@ class SetupController extends Controller
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function checkMail(): Response
|
||||
public function checkMail(CheckMailRequest $request)
|
||||
{
|
||||
// if (Account::count() == 0) {} /** This may not work, because we don't have 'account's table. */
|
||||
|
||||
|
||||
try {
|
||||
SystemHealth::testMailServer();
|
||||
$response_array = SystemHealth::testMailServer($request);
|
||||
|
||||
$randomStatus = rand(0, 1);
|
||||
|
||||
if ($randomStatus)
|
||||
if(count($response_array) == 0)
|
||||
return response([], 200);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
info(['action' => 'SetupController::checkMail()', 'message' => $e->getMessage(),]);
|
||||
else
|
||||
return response()->json($response_array, 200);
|
||||
|
||||
return response([], 400);
|
||||
|
||||
} catch (\Exception $e) {
|
||||
return response()->json(['message' => $e->getMessage()], 400);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -20,19 +20,32 @@ use Symfony\Component\HttpFoundation\Response;
|
||||
|
||||
class CreateAccount
|
||||
{
|
||||
|
||||
use Dispatchable;
|
||||
|
||||
protected $request;
|
||||
|
||||
public function __construct(array $sp660339)
|
||||
{
|
||||
$this->request = $sp660339;
|
||||
}
|
||||
|
||||
public function handle()
|
||||
{
|
||||
if (config('ninja.environment') == 'selfhost' && Account::all()->count() > 1) {
|
||||
|
||||
if(config('ninja.environment') == 'selfhost' && Account::all()->count() == 0) {
|
||||
$this->create();
|
||||
}elseif (config('ninja.environment') == 'selfhost' && Account::all()->count() > 1) {
|
||||
return response()->json(array('message' => Ninja::selfHostedMessage()), 400);
|
||||
} elseif (!Ninja::boot()) {
|
||||
return response()->json(array('message' => Ninja::parse()), 401);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private function create()
|
||||
{
|
||||
|
||||
$sp794f3f = Account::create($this->request);
|
||||
$sp794f3f->referral_code = Str::random(32);
|
||||
|
||||
@ -58,5 +71,7 @@ class CreateAccount
|
||||
$spaa9f78->fresh();
|
||||
$sp035a66->notification(new NewAccountCreated($spaa9f78, $sp035a66))->ninja();
|
||||
return $sp794f3f;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -55,7 +55,7 @@ class CreateCompanyToken implements ShouldQueue
|
||||
|
||||
$ct = CompanyToken::create([
|
||||
'user_id' => $this->user->id,
|
||||
'account_id' => $this->company->account->id,
|
||||
'account_id' => $this->user->account->id,
|
||||
'token' => Str::random(64),
|
||||
'name' => $this->custom_token_name ?: $this->user->first_name. ' '. $this->user->last_name,
|
||||
'company_id' => $this->company->id,
|
||||
|
@ -46,8 +46,15 @@ class SendVerificationNotification implements ShouldQueue
|
||||
{
|
||||
MultiDB::setDB($event->company->db);
|
||||
|
||||
$event->user->notify(new VerifyUser($event->user));
|
||||
try {
|
||||
|
||||
Ninja::registerNinjaUser($event->user);
|
||||
$event->user->notify(new VerifyUser($event->user));
|
||||
|
||||
Ninja::registerNinjaUser($event->user);
|
||||
|
||||
}
|
||||
catch(\Exception $e){
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -137,19 +137,20 @@ class SystemHealth
|
||||
Mail::to(config('mail.from.address'))
|
||||
->send(new TestMailServer('Email Server Works!', config('mail.from.address')));
|
||||
} catch (\Exception $e) {
|
||||
\Log::error($e->getMessage());
|
||||
return $e->getMessage();
|
||||
}
|
||||
|
||||
if (count(Mail::failures()) > 0) {
|
||||
\Log::error(print_r(Mail::failures(),1));
|
||||
return Mail::failures();
|
||||
}
|
||||
|
||||
return [];
|
||||
return response()->json(['message'=>'Success'],200);
|
||||
}
|
||||
|
||||
private static function checkEnvWritable()
|
||||
{
|
||||
return is_writable(base_path().'/.env');
|
||||
//return @fopen(base_path().'/.env', 'w');
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user