mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-23 00:00:57 -04:00
Refactor for login flow
This commit is contained in:
parent
53bf247ebc
commit
10a0812ead
@ -404,6 +404,36 @@ class LoginController extends BaseController
|
|||||||
|
|
||||||
if ($user) {
|
if ($user) {
|
||||||
|
|
||||||
|
//check the user doesn't already exist in some form
|
||||||
|
|
||||||
|
if($existing_login_user = MultiDB::hasUser(['email' => $google->harvestEmail($user)]))
|
||||||
|
{
|
||||||
|
Auth::login($existing_login_user, true);
|
||||||
|
$existing_login_user->setCompany($existing_login_user->account->default_company);
|
||||||
|
|
||||||
|
$this->setLoginCache($existing_login_user);
|
||||||
|
|
||||||
|
auth()->user()->update([
|
||||||
|
'oauth_user_id' => $google->harvestSubField($user),
|
||||||
|
'oauth_provider_id'=> 'google',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$cu = CompanyUser::query()
|
||||||
|
->where('user_id', auth()->user()->id);
|
||||||
|
|
||||||
|
$cu->first()->account->companies->each(function ($company) use($cu){
|
||||||
|
|
||||||
|
if($company->tokens()->where('is_system', true)->count() == 0)
|
||||||
|
{
|
||||||
|
CreateCompanyToken::dispatchNow($company, $cu->first()->user, request()->server('HTTP_USER_AGENT'));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
return $this->timeConstrainedResponse($cu);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//user not found anywhere - lets sign them up.
|
||||||
$name = OAuth::splitName($google->harvestName($user));
|
$name = OAuth::splitName($google->harvestName($user));
|
||||||
|
|
||||||
$new_account = [
|
$new_account = [
|
||||||
|
@ -17,6 +17,7 @@ use App\Models\CompanyUser;
|
|||||||
use App\Models\User;
|
use App\Models\User;
|
||||||
use App\Transformers\CompanyUserTransformer;
|
use App\Transformers\CompanyUserTransformer;
|
||||||
use App\Transformers\UserTransformer;
|
use App\Transformers\UserTransformer;
|
||||||
|
use App\Utils\Traits\User\LoginCache;
|
||||||
use Google_Client;
|
use Google_Client;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\Cache;
|
use Illuminate\Support\Facades\Cache;
|
||||||
@ -24,6 +25,7 @@ use Illuminate\Support\Str;
|
|||||||
|
|
||||||
class ConnectedAccountController extends BaseController
|
class ConnectedAccountController extends BaseController
|
||||||
{
|
{
|
||||||
|
use LoginCache;
|
||||||
|
|
||||||
protected $entity_type = User::class;
|
protected $entity_type = User::class;
|
||||||
|
|
||||||
@ -113,8 +115,7 @@ class ConnectedAccountController extends BaseController
|
|||||||
auth()->user()->email_verified_at = now();
|
auth()->user()->email_verified_at = now();
|
||||||
auth()->user()->save();
|
auth()->user()->save();
|
||||||
|
|
||||||
$timeout = auth()->user()->company()->default_password_timeout;
|
$this->setLoginCache(auth()->user());
|
||||||
Cache::put(auth()->user()->hashed_id.'_'.auth()->user()->account_id.'_logged_in', Str::random(64), $timeout);
|
|
||||||
|
|
||||||
return $this->itemResponse(auth()->user());
|
return $this->itemResponse(auth()->user());
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user