diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 8d79079588..b5ece9130f 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -155,8 +155,10 @@ class LoginController extends BaseController $user = $user->fresh(); } + nlog("LOGIN:: {$request->email} - {$user->account_id}"); + /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); @@ -307,7 +309,7 @@ class LoginController extends BaseController Auth::login($existing_user, false); /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($existing_user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); @@ -336,7 +338,7 @@ class LoginController extends BaseController ]); /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); @@ -385,7 +387,7 @@ class LoginController extends BaseController $user->save(); /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); @@ -398,11 +400,11 @@ class LoginController extends BaseController return $this->timeConstrainedResponse($cu); } - private function hydrateCompanyUser(): Builder + private function hydrateCompanyUser(User $user): Builder { - /** @var \App\Models\User $user */ - $user = auth()->user(); + // /** @var \App\Models\User $user */ + // $user = auth()->user(); /** @var Builder $cu */ $cu = CompanyUser::query()->where('user_id', $user->id); @@ -427,8 +429,6 @@ class LoginController extends BaseController $truth->setCompany($set_company); //21-03-2024 - - $cu->each(function ($cu) { /** @var \App\Models\CompanyUser $cu */ if (CompanyToken::query()->where('company_id', $cu->company_id)->where('user_id', $cu->user_id)->where('is_system', true)->doesntExist()) { @@ -512,7 +512,7 @@ class LoginController extends BaseController Auth::login($existing_user, false); /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($existing_user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); @@ -527,19 +527,12 @@ class LoginController extends BaseController return $this->timeConstrainedResponse($cu); } - private function existingLoginUser($oauth_user_id, $provider) + private function existingLoginUser($user) { - /** @var \App\Models\User $user */ - $user = auth()->user(); - - $user->update([ - 'oauth_user_id' => $oauth_user_id, - 'oauth_provider_id' => $provider, - ]); /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); @@ -598,7 +591,13 @@ class LoginController extends BaseController Auth::login($existing_login_user, false); - return $this->existingLoginUser($google->harvestSubField($user), 'google'); + $existing_login_user->update([ + 'oauth_user_id' => $google->harvestSubField($user), + 'oauth_provider_id' => 'google', + ]); + + + return $this->existingLoginUser($existing_login_user); } if (request()->has('create') && request()->input('create') == 'true') { @@ -635,16 +634,14 @@ class LoginController extends BaseController return $account; } - Auth::login($account->default_company->owner(), false); - - /** @var \App\Models\User $user */ - $user = auth()->user(); - + $user = $account->default_company->owner(); $user->email_verified_at = now(); $user->save(); + Auth::login($user, false); + /** @var \App\Models\CompanyUser $cu */ - $cu = $this->hydrateCompanyUser(); + $cu = $this->hydrateCompanyUser($user); if ($cu->count() == 0) { return response()->json(['message' => 'User found, but not attached to any companies, please see your administrator'], 400); diff --git a/phpstan.neon b/phpstan.neon index ad438b6769..e68999190d 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -21,6 +21,7 @@ parameters: - 'app/Http/Middleware/ThrottleRequestsWithPredis.php' - 'app/Utils/Traits/*' - 'Modules/Accounting/*' + - 'tests/*' universalObjectCratesClasses: - App\DataMapper\Tax\RuleInterface - App\DataMapper\FeesAndLimits diff --git a/tests/Feature/EInvoice/PeppolApiTest.php b/tests/Feature/EInvoice/PeppolApiTest.php index 644edc14b2..533bac7e69 100644 --- a/tests/Feature/EInvoice/PeppolApiTest.php +++ b/tests/Feature/EInvoice/PeppolApiTest.php @@ -22,7 +22,7 @@ use Tests\TestCase; */ class PeppolApiTest extends TestCase { - use DatabaseTransactions; + // use DatabaseTransactions; use MockAccountData; protected function setUp(): void diff --git a/tests/Feature/EInvoice/PeppolTest.php b/tests/Feature/EInvoice/PeppolTest.php index 5bcf0c02e6..3aca426efe 100644 --- a/tests/Feature/EInvoice/PeppolTest.php +++ b/tests/Feature/EInvoice/PeppolTest.php @@ -41,7 +41,7 @@ use InvoiceNinja\EInvoice\Models\FatturaPA\FatturaElettronicaHeaderType\FatturaE class PeppolTest extends TestCase { - use DatabaseTransactions; + // use DatabaseTransactions; use MockAccountData; protected int $iterations = 10; diff --git a/tests/Feature/Import/Quickbooks/QuickbooksExportTest.php b/tests/Feature/Import/Quickbooks/QuickbooksExportTest.php index 636f3a9cbb..ca903fd8c5 100644 --- a/tests/Feature/Import/Quickbooks/QuickbooksExportTest.php +++ b/tests/Feature/Import/Quickbooks/QuickbooksExportTest.php @@ -38,7 +38,8 @@ class QuickbooksExportTest extends TestCase { parent::setUp(); - if(config('ninja.is_travis') || !config('services.quickbooks.client_id')){ + + if(config('ninja.testvars.travis') || !config('services.quickbooks.client_id')){ $this->markTestSkipped('No Quickbooks Client ID found'); } diff --git a/tests/Pdf/PdfServiceTest.php b/tests/Pdf/PdfServiceTest.php index cb91ce04bb..62cdd079b7 100644 --- a/tests/Pdf/PdfServiceTest.php +++ b/tests/Pdf/PdfServiceTest.php @@ -76,7 +76,7 @@ class PdfServiceTest extends TestCase $this->makeTestData(); - if(config('ninja.is_travis')) { + if (config('ninja.testvars.travis')) { $this->markTestSkipped(); } diff --git a/tests/Unit/EntityTest.php b/tests/Unit/EntityTest.php index 5cebbf190f..448a4c464d 100644 --- a/tests/Unit/EntityTest.php +++ b/tests/Unit/EntityTest.php @@ -34,7 +34,7 @@ use Illuminate\Foundation\Testing\DatabaseTransactions; class EntityTest extends TestCase { use MockAccountData; - // use DatabaseTransactions; + use DatabaseTransactions; public $invoice; diff --git a/tests/Unit/InvoiceMarkPaidTest.php b/tests/Unit/InvoiceMarkPaidTest.php index 2bcc329a47..f28d9b9f88 100644 --- a/tests/Unit/InvoiceMarkPaidTest.php +++ b/tests/Unit/InvoiceMarkPaidTest.php @@ -117,6 +117,7 @@ class InvoiceMarkPaidTest extends TestCase $line_items[] = $item; + /** @var \App\Models\Invoice $i */ $i = Invoice::factory()->create([ 'discount' => 0, 'tax_name1' => '',