From 7885813c1ad049715a67d8595cb4cb5b71ab1859 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Fri, 10 Jun 2022 13:03:05 +1000 Subject: [PATCH] Store silent in session to prevent entities being viewed by admins --- app/Http/Controllers/ClientPortal/EntityViewController.php | 6 ++++-- app/Http/Controllers/ClientPortal/InvitationController.php | 6 ++++-- app/Http/Controllers/ClientPortal/InvoiceController.php | 2 +- app/Http/Middleware/CheckClientExistence.php | 2 ++ 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/ClientPortal/EntityViewController.php b/app/Http/Controllers/ClientPortal/EntityViewController.php index 8060391fd8d1..f521f21fa736 100644 --- a/app/Http/Controllers/ClientPortal/EntityViewController.php +++ b/app/Http/Controllers/ClientPortal/EntityViewController.php @@ -154,9 +154,11 @@ class EntityViewController extends Controller if (! $invitation->viewed_date) { $invitation->markViewed(); - event(new InvitationWasViewed($invitation->{$request->entity_type}, $invitation, $invitation->{$request->entity_type}->company, Ninja::eventVars())); + if(!session()->get('is_silent')) + event(new InvitationWasViewed($invitation->{$request->entity_type}, $invitation, $invitation->{$request->entity_type}->company, Ninja::eventVars())); - $this->fireEntityViewedEvent($invitation, $request->entity_type); + if(!session()->get('is_silent')) + $this->fireEntityViewedEvent($invitation, $request->entity_type); } return redirect()->route('client.'.$request->entity_type.'.show', [$request->entity_type => $this->encodePrimaryKey($invitation->{$key})]); diff --git a/app/Http/Controllers/ClientPortal/InvitationController.php b/app/Http/Controllers/ClientPortal/InvitationController.php index 48b4a455754b..1595b5483fea 100644 --- a/app/Http/Controllers/ClientPortal/InvitationController.php +++ b/app/Http/Controllers/ClientPortal/InvitationController.php @@ -129,9 +129,11 @@ class InvitationController extends Controller if (auth()->guard('contact')->user() && ! request()->has('silent') && ! $invitation->viewed_date) { $invitation->markViewed(); - event(new InvitationWasViewed($invitation->{$entity}, $invitation, $invitation->{$entity}->company, Ninja::eventVars())); + if(!session()->get('is_silent')) + event(new InvitationWasViewed($invitation->{$entity}, $invitation, $invitation->{$entity}->company, Ninja::eventVars())); - $this->fireEntityViewedEvent($invitation, $entity); + if(!session()->get('is_silent')) + $this->fireEntityViewedEvent($invitation, $entity); } else{ $is_silent = 'true'; diff --git a/app/Http/Controllers/ClientPortal/InvoiceController.php b/app/Http/Controllers/ClientPortal/InvoiceController.php index 3aa543614787..f3a49b20ead1 100644 --- a/app/Http/Controllers/ClientPortal/InvoiceController.php +++ b/app/Http/Controllers/ClientPortal/InvoiceController.php @@ -61,7 +61,7 @@ class InvoiceController extends Controller $invitation = $invoice->invitations()->where('client_contact_id', auth()->guard('contact')->user()->id)->first(); - if ($invitation && auth()->guard('contact') && ! request()->has('silent') && ! $invitation->viewed_date) { + if ($invitation && auth()->guard('contact') && !session()->get('is_silent') && ! $invitation->viewed_date) { $invitation->markViewed(); diff --git a/app/Http/Middleware/CheckClientExistence.php b/app/Http/Middleware/CheckClientExistence.php index dfb894fac11a..f218c39a32c0 100644 --- a/app/Http/Middleware/CheckClientExistence.php +++ b/app/Http/Middleware/CheckClientExistence.php @@ -60,6 +60,8 @@ class CheckClientExistence session()->put('multiple_contacts', $multiple_contacts); + session()->put('is_silent', request()->has('silent')); + return $next($request); } }