mirror of
				https://github.com/invoiceninja/invoiceninja.git
				synced 2025-11-04 08:17:32 -05: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;
 | 
			
		||||
        $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);
 | 
			
		||||
@ -135,6 +142,9 @@ class ContactLoginController extends Controller
 | 
			
		||||
 | 
			
		||||
        $this->setRedirectPath();
 | 
			
		||||
        
 | 
			
		||||
        if($intended)
 | 
			
		||||
            $this->redirectTo = $intended;
 | 
			
		||||
 | 
			
		||||
        return $request->wantsJson()
 | 
			
		||||
                    ? new JsonResponse([], 204)
 | 
			
		||||
                    : redirect()->intended($this->redirectPath());
 | 
			
		||||
@ -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)) {
 | 
			
		||||
 | 
			
		||||
@ -115,14 +115,16 @@ class InvitationController extends Controller
 | 
			
		||||
                        ]);
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            if(!auth()->guard('contact')->check()){
 | 
			
		||||
                $this->middleware('auth:contact');
 | 
			
		||||
            return redirect()->route('client.login');
 | 
			
		||||
                return redirect()->route('client.login', ['intended' => route('client.'.$entity.'.show', [$entity => $this->encodePrimaryKey($invitation->{$key}), 'silent' => $is_silent])]);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
        } 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();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user