diff --git a/app/Http/Controllers/ClientPortalController.php b/app/Http/Controllers/ClientPortalController.php index e0de71a3ed1a..8d74076c37aa 100644 --- a/app/Http/Controllers/ClientPortalController.php +++ b/app/Http/Controllers/ClientPortalController.php @@ -69,7 +69,7 @@ class ClientPortalController extends BaseController $account->loadLocalizationSettings($client); - if (! Input::has('phantomjs') && ! session('silent') && ! Session::has($invitationKey) + if (! Input::has('phantomjs') && ! session('silent') && ! Session::has($invitation->invitation_key) && (! Auth::check() || Auth::user()->account_id != $invoice->account_id)) { if ($invoice->isType(INVOICE_TYPE_QUOTE)) { event(new QuoteInvitationWasViewed($invoice, $invitation)); @@ -78,7 +78,7 @@ class ClientPortalController extends BaseController } } - Session::put($invitationKey, true); // track this invitation has been seen + Session::put($invitation->invitation_key, true); // track this invitation has been seen Session::put('contact_key', $invitation->contact->contact_key); // track current contact $invoice->invoice_date = Utils::fromSqlDate($invoice->invoice_date); diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 9e27317199d1..e19afd0cc671 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -104,6 +104,9 @@ class Authenticate */ protected function getInvitation($key) { + // check for extra params at end of value (from website feature) + list($key) = explode('&', $key); + $invitation = Invitation::withTrashed()->where('invitation_key', '=', $key)->first(); if ($invitation && ! $invitation->is_deleted) { return $invitation; diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php index 1a4b9e08b91e..39f047b38edd 100644 --- a/app/Ninja/Repositories/InvoiceRepository.php +++ b/app/Ninja/Repositories/InvoiceRepository.php @@ -827,6 +827,9 @@ class InvoiceRepository extends BaseRepository */ public function findInvoiceByInvitation($invitationKey) { + // check for extra params at end of value (from website feature) + list($invitationKey) = explode('&', $invitationKey); + /** @var \App\Models\Invitation $invitation */ $invitation = Invitation::where('invitation_key', '=', $invitationKey)->first();