mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 02:14:33 -04:00
Cleanup for login controller - ensure tokens are present when user oauths
This commit is contained in:
parent
afdd594748
commit
00e74c3d3d
@ -32,6 +32,7 @@ use Illuminate\Support\Facades\Cache;
|
|||||||
use Turbo124\Beacon\Facades\LightLogs;
|
use Turbo124\Beacon\Facades\LightLogs;
|
||||||
use App\Http\Controllers\BaseController;
|
use App\Http\Controllers\BaseController;
|
||||||
use App\Jobs\Company\CreateCompanyToken;
|
use App\Jobs\Company\CreateCompanyToken;
|
||||||
|
use Illuminate\Support\Facades\Response;
|
||||||
use Laravel\Socialite\Facades\Socialite;
|
use Laravel\Socialite\Facades\Socialite;
|
||||||
use App\Http\Requests\Login\LoginRequest;
|
use App\Http\Requests\Login\LoginRequest;
|
||||||
use App\Libraries\OAuth\Providers\Google;
|
use App\Libraries\OAuth\Providers\Google;
|
||||||
@ -109,6 +110,7 @@ class LoginController extends BaseController
|
|||||||
->increment()
|
->increment()
|
||||||
->batch();
|
->batch();
|
||||||
|
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
$user = $this->guard()->user();
|
$user = $this->guard()->user();
|
||||||
|
|
||||||
//2FA
|
//2FA
|
||||||
@ -135,7 +137,8 @@ class LoginController extends BaseController
|
|||||||
$account->save();
|
$account->save();
|
||||||
$user = $user->fresh();
|
$user = $user->fresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -168,7 +171,7 @@ class LoginController extends BaseController
|
|||||||
* Refreshes the data feed with the current Company User.
|
* Refreshes the data feed with the current Company User.
|
||||||
*
|
*
|
||||||
* @param Request $request
|
* @param Request $request
|
||||||
* @return CompanyUser Refresh Feed.
|
* @return Response | JsonResponse.
|
||||||
*/
|
*/
|
||||||
public function refresh(Request $request)
|
public function refresh(Request $request)
|
||||||
{
|
{
|
||||||
@ -271,6 +274,7 @@ class LoginController extends BaseController
|
|||||||
|
|
||||||
Auth::login($existing_user, true);
|
Auth::login($existing_user, true);
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -290,12 +294,16 @@ class LoginController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
Auth::login($existing_login_user, true);
|
Auth::login($existing_login_user, true);
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
|
||||||
auth()->user()->update([
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$user->update([
|
||||||
'oauth_user_id' => $user->id,
|
'oauth_user_id' => $user->id,
|
||||||
'oauth_provider_id' => $provider,
|
'oauth_provider_id' => $provider,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -333,9 +341,14 @@ class LoginController extends BaseController
|
|||||||
$account = (new CreateAccount($new_account, request()->getClientIp()))->handle();
|
$account = (new CreateAccount($new_account, request()->getClientIp()))->handle();
|
||||||
|
|
||||||
Auth::login($account->default_company->owner(), true);
|
Auth::login($account->default_company->owner(), true);
|
||||||
auth()->user()->email_verified_at = now();
|
|
||||||
auth()->user()->save();
|
|
||||||
|
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$user->email_verified_at = now();
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -363,26 +376,21 @@ class LoginController extends BaseController
|
|||||||
$set_company = $cu->first()->company;
|
$set_company = $cu->first()->company;
|
||||||
}
|
}
|
||||||
|
|
||||||
auth()->user()->setCompany($set_company);
|
/** @var \App\Models\User $user */
|
||||||
|
$user->setCompany($set_company);
|
||||||
|
|
||||||
$this->setLoginCache(auth()->user());
|
$this->setLoginCache($user);
|
||||||
|
|
||||||
$truth = app()->make(TruthSource::class);
|
$truth = app()->make(TruthSource::class);
|
||||||
$truth->setCompanyUser($cu->first());
|
$truth->setCompanyUser($cu->first());
|
||||||
$truth->setUser(auth()->user());
|
$truth->setUser($user);
|
||||||
$truth->setCompany($set_company);
|
$truth->setCompany($set_company);
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
$cu->first()->account->companies->each(function ($company) use ($cu) {
|
||||||
return $cu;
|
if ($company->tokens()->where('is_system', true)->count() == 0) {
|
||||||
}
|
(new CreateCompanyToken($company, $cu->first()->user, request()->server('HTTP_USER_AGENT')))->handle();
|
||||||
|
}
|
||||||
if (auth()->user()->company_users()->count() != auth()->user()->tokens()->distinct('company_id')->count()) {
|
});
|
||||||
auth()->user()->companies->each(function ($company) {
|
|
||||||
if (!CompanyToken::where('user_id', auth()->user()->id)->where('company_id', $company->id)->where('is_system', true)->exists()) {
|
|
||||||
(new CreateCompanyToken($company, auth()->user(), 'Google_O_Auth'))->handle();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
$truth->setCompanyToken(CompanyToken::where('user_id', auth()->user()->id)->where('company_id', $set_company->id)->first());
|
$truth->setCompanyToken(CompanyToken::where('user_id', auth()->user()->id)->where('company_id', $set_company->id)->first());
|
||||||
|
|
||||||
@ -457,10 +465,17 @@ class LoginController extends BaseController
|
|||||||
return response()->json(['message' => 'Unable to authenticate this user'], 400);
|
return response()->json(['message' => 'Unable to authenticate this user'], 400);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* send login response to oauthed users
|
||||||
|
*
|
||||||
|
* @param \App\Models\User $existing_user
|
||||||
|
* @return Response | JsonResponse
|
||||||
|
*/
|
||||||
private function existingOauthUser($existing_user)
|
private function existingOauthUser($existing_user)
|
||||||
{
|
{
|
||||||
Auth::login($existing_user, true);
|
Auth::login($existing_user, true);
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -476,11 +491,16 @@ class LoginController extends BaseController
|
|||||||
|
|
||||||
private function existingLoginUser($oauth_user_id, $provider)
|
private function existingLoginUser($oauth_user_id, $provider)
|
||||||
{
|
{
|
||||||
auth()->user()->update([
|
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$user->update([
|
||||||
'oauth_user_id' => $oauth_user_id,
|
'oauth_user_id' => $oauth_user_id,
|
||||||
'oauth_provider_id' => $provider,
|
'oauth_provider_id' => $provider,
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -579,9 +599,14 @@ class LoginController extends BaseController
|
|||||||
}
|
}
|
||||||
|
|
||||||
Auth::login($account->default_company->owner(), true);
|
Auth::login($account->default_company->owner(), true);
|
||||||
auth()->user()->email_verified_at = now();
|
|
||||||
auth()->user()->save();
|
|
||||||
|
|
||||||
|
/** @var \App\Models\User $user */
|
||||||
|
$user = auth()->user();
|
||||||
|
|
||||||
|
$user->email_verified_at = now();
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
/** @var \App\Models\CompanyUser $cu */
|
||||||
$cu = $this->hydrateCompanyUser();
|
$cu = $this->hydrateCompanyUser();
|
||||||
|
|
||||||
if ($cu->count() == 0) {
|
if ($cu->count() == 0) {
|
||||||
@ -694,8 +719,6 @@ class LoginController extends BaseController
|
|||||||
'email' => $socialite_user->getEmail(),
|
'email' => $socialite_user->getEmail(),
|
||||||
'oauth_user_id' => $socialite_user->getId(),
|
'oauth_user_id' => $socialite_user->getId(),
|
||||||
'oauth_provider_id' => $provider,
|
'oauth_provider_id' => $provider,
|
||||||
// 'oauth_user_token' => $oauth_user_token,
|
|
||||||
// 'oauth_user_refresh_token' => $socialite_user->accessTokenResponseBody['refresh_token'],
|
|
||||||
'oauth_user_token_expiry' => $oauth_expiry,
|
'oauth_user_token_expiry' => $oauth_expiry,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user