Refactor for missing company tokens

This commit is contained in:
David Bomba 2023-05-29 15:53:36 +10:00
parent e675d6bfb4
commit 4faf0d2e5f

View File

@ -365,21 +365,22 @@ class LoginController extends BaseController
private function hydrateCompanyUser(): Builder private function hydrateCompanyUser(): Builder
{ {
$cu = CompanyUser::query()->where('user_id', auth()->user()->id);
/** @var \App\Models\User $user */
$user = auth()->user();
$cu = CompanyUser::query()->where('user_id', $user->id);
if ($cu->count() == 0) { if ($cu->count() == 0) {
return $cu; return $cu;
} }
if (CompanyUser::query()->where('user_id', auth()->user()->id)->where('company_id', auth()->user()->account->default_company_id)->exists()) { if (CompanyUser::query()->where('user_id', $user->id)->where('company_id', $user->account->default_company_id)->exists()) {
$set_company = auth()->user()->account->default_company; $set_company = $user->account->default_company;
} else { } else {
$set_company = $cu->first()->company; $set_company = CompanyUser::query()->where('user_id', $user->id)->first()->company;
} }
/** @var \App\Models\User $user */
$user = auth()->user();
$user->setCompany($set_company); $user->setCompany($set_company);
$this->setLoginCache($user); $this->setLoginCache($user);
@ -389,15 +390,15 @@ class LoginController extends BaseController
$truth->setUser($user); $truth->setUser($user);
$truth->setCompany($set_company); $truth->setCompany($set_company);
$cu->first()->account->companies->each(function ($company) use ($cu) { $user->account->companies->each(function ($company) use ($user) {
if ($company->tokens()->where('is_system', true)->count() == 0) { if ($company->tokens()->where('is_system', true)->count() == 0) {
(new CreateCompanyToken($company, $cu->first()->user, request()->server('HTTP_USER_AGENT')))->handle(); (new CreateCompanyToken($company, $user, request()->server('HTTP_USER_AGENT')))->handle();
} }
}); });
$truth->setCompanyToken(CompanyToken::where('user_id', auth()->user()->id)->where('company_id', $set_company->id)->first()); $truth->setCompanyToken(CompanyToken::where('user_id', $user->id)->where('company_id', $set_company->id)->first());
return $cu; return CompanyUser::query()->where('user_id', $user->id);
} }
private function handleMicrosoftOauth() private function handleMicrosoftOauth()