From b540a98ac64d56e80633135416e89a7ee018d5b8 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Wed, 1 Nov 2023 11:00:23 +1100 Subject: [PATCH] Additional checks around quotas --- app/Http/Controllers/InvoiceController.php | 4 ++++ app/Http/Requests/Email/SendEmailRequest.php | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 54ec62500be1..ce182586d2db 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -493,6 +493,10 @@ class InvoiceController extends BaseController return response(['message' => 'Please verify your account to send emails.'], 400); } + if (Ninja::isHosted() && (stripos($action, 'email') !== false) && $user->account->emailQuotaExceeded()) { + return response(['message' => ctrans('texts.email_quota_exceeded_subject')], 400); + } + if(in_array($request->action, ['auto_bill','mark_paid']) && $user->cannot('create', \App\Models\Payment::class)) { return response(['message' => ctrans('texts.not_authorized'), 'errors' => ['ids' => [ctrans('texts.not_authorized')]]], 422); } diff --git a/app/Http/Requests/Email/SendEmailRequest.php b/app/Http/Requests/Email/SendEmailRequest.php index 53a48cc52891..a2b65364a13e 100644 --- a/app/Http/Requests/Email/SendEmailRequest.php +++ b/app/Http/Requests/Email/SendEmailRequest.php @@ -85,17 +85,23 @@ class SendEmailRequest extends Request private function checkUserAbleToSend() { $input = $this->all(); + + /** @var \App\Models\User $user */ + $user = auth()->user(); - if (Ninja::isHosted() && !auth()->user()->account->account_sms_verified) { + if (Ninja::isHosted() && !$user->account->account_sms_verified) { $this->error_message = ctrans('texts.authorization_sms_failure'); return false; } + if (Ninja::isHosted() && $user->account->emailQuotaExceeded()) { + $this->error_message = ctrans('texts.email_quota_exceeded_subject'); + return false; + } + /*Make sure we have all the require ingredients to send a template*/ if (isset($input['entity']) && array_key_exists('entity_id', $input) && is_string($input['entity']) && $input['entity_id']) { - /** @var \App\Models\User $user */ - $user = auth()->user(); $company = $user->company();