mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-05-31 11:54:33 -04:00
Fixes for redirect after auth in cp
This commit is contained in:
parent
3a4f47c1a9
commit
d2d436da8f
@ -41,6 +41,9 @@ class ContactLoginController extends Controller
|
|||||||
$company = false;
|
$company = false;
|
||||||
$account = false;
|
$account = false;
|
||||||
|
|
||||||
|
if($request->query('intended'))
|
||||||
|
$request->session()->put('url.intended', $request->query('intended'));
|
||||||
|
|
||||||
if ($request->session()->has('company_key')) {
|
if ($request->session()->has('company_key')) {
|
||||||
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
|
MultiDB::findAndSetDbByCompanyKey($request->session()->get('company_key'));
|
||||||
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
|
$company = Company::where('company_key', $request->session()->get('company_key'))->first();
|
||||||
@ -81,6 +84,7 @@ class ContactLoginController extends Controller
|
|||||||
|
|
||||||
public function login(Request $request)
|
public function login(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
Auth::shouldUse('contact');
|
Auth::shouldUse('contact');
|
||||||
|
|
||||||
if (Ninja::isHosted() && $request->has('company_key')) {
|
if (Ninja::isHosted() && $request->has('company_key')) {
|
||||||
@ -125,6 +129,9 @@ class ContactLoginController extends Controller
|
|||||||
|
|
||||||
protected function sendLoginResponse(Request $request)
|
protected function sendLoginResponse(Request $request)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
$intended = $request->session()->has('url.intended') ? $request->session()->get('url.intended') : false;
|
||||||
|
|
||||||
$request->session()->regenerate();
|
$request->session()->regenerate();
|
||||||
|
|
||||||
$this->clearLoginAttempts($request);
|
$this->clearLoginAttempts($request);
|
||||||
@ -134,6 +141,9 @@ class ContactLoginController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$this->setRedirectPath();
|
$this->setRedirectPath();
|
||||||
|
|
||||||
|
if($intended)
|
||||||
|
$this->redirectTo = $intended;
|
||||||
|
|
||||||
return $request->wantsJson()
|
return $request->wantsJson()
|
||||||
? new JsonResponse([], 204)
|
? new JsonResponse([], 204)
|
||||||
@ -146,8 +156,8 @@ class ContactLoginController extends Controller
|
|||||||
|
|
||||||
event(new ContactLoggedIn($client, $client->company, Ninja::eventVars()));
|
event(new ContactLoggedIn($client, $client->company, Ninja::eventVars()));
|
||||||
|
|
||||||
if (session()->get('url.intended')) {
|
if ($request->session()->has('url.intended')) {
|
||||||
return redirect(session()->get('url.intended'));
|
return redirect($request->session()->get('url.intended'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->setRedirectPath();
|
$this->setRedirectPath();
|
||||||
@ -165,6 +175,7 @@ class ContactLoginController extends Controller
|
|||||||
|
|
||||||
private function setRedirectPath()
|
private function setRedirectPath()
|
||||||
{
|
{
|
||||||
|
|
||||||
if (auth()->guard('contact')->user()->client->getSetting('enable_client_portal_dashboard') === true) {
|
if (auth()->guard('contact')->user()->client->getSetting('enable_client_portal_dashboard') === true) {
|
||||||
$this->redirectTo = '/client/dashboard';
|
$this->redirectTo = '/client/dashboard';
|
||||||
} elseif ((bool)(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_INVOICES)) {
|
} elseif ((bool)(auth()->guard('contact')->user()->company->enabled_modules & PortalComposer::MODULE_INVOICES)) {
|
||||||
|
@ -114,15 +114,17 @@ class InvitationController extends Controller
|
|||||||
'invitation_key' => $invitation_key
|
'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 {
|
} else {
|
||||||
request()->session()->invalidate();
|
request()->session()->invalidate();
|
||||||
auth()->guard('contact')->loginUsingId($client_contact->id, true);
|
auth()->guard('contact')->loginUsingId($client_contact->id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (auth()->guard('contact')->user() && ! request()->has('silent') && ! $invitation->viewed_date) {
|
if (auth()->guard('contact')->user() && ! request()->has('silent') && ! $invitation->viewed_date) {
|
||||||
$invitation->markViewed();
|
$invitation->markViewed();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user