diff --git a/app/Http/Controllers/HostedMigrationController.php b/app/Http/Controllers/HostedMigrationController.php new file mode 100644 index 000000000000..bf967433ef8f --- /dev/null +++ b/app/Http/Controllers/HostedMigrationController.php @@ -0,0 +1,52 @@ +header('X-API-HOSTED-SECRET') != config('ninja.ninja_hosted_secret')) + return; + + if($user = MultiDB::hasUser(['email' => $request->input('email')])) + { + + if($user->account->owner() && $user->account->companies()->count() >= 1) + { + return response()->json(['token' => $user->account->companies->first()->tokens->first()->token] ,200); + } + + + return response()->json(['error' => 'This user is not able to perform a migration. Please contact us at contact@invoiceninja.com to discuss.'], 401) + + } + + $account = CreateAccount::dispatchNow($request->all(), $request->getClientIp()); + + $company = $account->companies->first(); + + $company_token = CompanyToken::where('user_id', auth()->user()->id) + ->where('company_id', $company->id) + ->first(); + + return response()->json(['token' => $company_token->token], 200); + + } + +} \ No newline at end of file diff --git a/app/Http/Requests/Account/CreateAccountRequest.php b/app/Http/Requests/Account/CreateAccountRequest.php index d8c05b70e3e5..eb8f8724a2d0 100644 --- a/app/Http/Requests/Account/CreateAccountRequest.php +++ b/app/Http/Requests/Account/CreateAccountRequest.php @@ -46,7 +46,8 @@ class CreateAccountRequest extends Request } protected function prepareForValidation() - {nlog($this->all()); + { + $input = $this->all(); $input['user_agent'] = request()->server('HTTP_USER_AGENT'); diff --git a/app/Jobs/Util/Import.php b/app/Jobs/Util/Import.php index 43a0e525a5ac..ba3b1e9654eb 100644 --- a/app/Jobs/Util/Import.php +++ b/app/Jobs/Util/Import.php @@ -319,6 +319,12 @@ class Import implements ShouldQueue $account = $this->company->account; $account->fill($data); $account->save(); + + //Prevent hosted users being pushed into a trial + if(Ninja::isHosted() && $account->plan != ''){ + $account->trial_plan = ''; + $account->save(); + } } /** diff --git a/routes/api.php b/routes/api.php index 18e97cf40517..2dba96ccc669 100644 --- a/routes/api.php +++ b/routes/api.php @@ -206,4 +206,6 @@ Route::post('api/v1/postmark_webhook', 'PostMarkController@webhook'); Route::get('token_hash_router', 'OneTimeTokenController@router'); Route::get('webcron', 'WebCronController@index'); +Route::post('api/v1/get_migration_account', 'HostedMigration@getAccount'); + Route::fallback('BaseController@notFound');