Fixes for redirect after auth in cp

This commit is contained in:
David Bomba 2024-06-16 16:28:44 +10:00
parent 3a4f47c1a9
commit d2d436da8f
2 changed files with 18 additions and 5 deletions

View File

@ -41,6 +41,9 @@ class ContactLoginController extends Controller
$company = false;
$account = false;
if($request->query('intended'))
$request->session()->put('url.intended', $request->query('intended'));
if ($request->session()->has('company_key')) {
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
@ -81,6 +84,7 @@ class ContactLoginController extends Controller
public function login(Request $request)
{
Auth::shouldUse('contact');
if (Ninja::isHosted() && $request->has('company_key')) {
@ -125,6 +129,9 @@ class ContactLoginController extends Controller
protected function sendLoginResponse(Request $request)
{
$intended = $request->session()->has('url.intended') ? $request->session()->get('url.intended') : false;
$request->session()->regenerate();
$this->clearLoginAttempts($request);
@ -134,6 +141,9 @@ class ContactLoginController extends Controller
}
$this->setRedirectPath();
if($intended)
$this->redirectTo = $intended;
return $request->wantsJson()
? new JsonResponse([], 204)
@ -146,8 +156,8 @@ class ContactLoginController extends Controller
event(new ContactLoggedIn($client, $client->company, Ninja::eventVars()));
if (session()->get('url.intended')) {
return redirect(session()->get('url.intended'));
if ($request->session()->has('url.intended')) {
return redirect($request->session()->get('url.intended'));
}
$this->setRedirectPath();
@ -165,6 +175,7 @@ class ContactLoginController extends Controller
private function setRedirectPath()
{
if (auth()->guard('contact')->user()->client->getSetting('enable_client_portal_dashboard') === true) {
$this->redirectTo = '/client/dashboard';
} elseif ((bool)(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_INVOICES)) {

View File

@ -114,15 +114,17 @@ class InvitationController extends Controller
'invitation_key' => $invitation_key
]);
}
if(!auth()->guard('contact')->check()){
$this->middleware('auth:contact');
return redirect()->route('client.login', ['intended' => route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key}), 'silent' => $is_silent])]);
}
$this->middleware('auth:contact');
return redirect()->route('client.login');
} else {
request()->session()->invalidate();
auth()->guard('contact')->loginUsingId($client_contact->id, true);
}
if (auth()->guard('contact')->user() && ! request()->has('silent') && ! $invitation->viewed_date) {
$invitation->markViewed();