Improve email validation

This commit is contained in:
David Bomba 2023-12-17 10:05:33 +11:00
parent bbb60eea3a
commit 4bf7e07514
2 changed files with 16 additions and 6 deletions

View File

@ -22,7 +22,10 @@ class BulkBankIntegrationRequest extends Request
*/ */
public function authorize() : bool public function authorize() : bool
{ {
return auth()->user()->isAdmin(); /** @var \App\Models\User $user */
$user = auth()->user();
return $user->isAdmin();
} }
public function rules() public function rules()

View File

@ -11,16 +11,18 @@
namespace App\Http\Requests\Email; namespace App\Http\Requests\Email;
use App\Http\Requests\Request;
use App\Utils\Ninja; use App\Utils\Ninja;
use App\Utils\Traits\MakesHash;
use Illuminate\Auth\Access\AuthorizationException;
use Illuminate\Support\Str; use Illuminate\Support\Str;
use App\Http\Requests\Request;
use App\Utils\Traits\MakesHash;
use Illuminate\Validation\Rule;
use Illuminate\Auth\Access\AuthorizationException;
class SendEmailRequest extends Request class SendEmailRequest extends Request
{ {
use MakesHash; use MakesHash;
private string $entity_plural = '';
private string $error_message = ''; private string $error_message = '';
/** /**
* Determine if the user is authorized to make this request. * Determine if the user is authorized to make this request.
@ -39,10 +41,13 @@ class SendEmailRequest extends Request
*/ */
public function rules() public function rules()
{ {
/** @var \App\Models\User $user */
$user = auth()->user();
return [ return [
'template' => 'bail|required', 'template' => 'bail|required',
'entity' => 'bail|required', 'entity' => 'bail|required|in:App\Models\Invoice,App\Models\Quote,App\Models\Credit,App\Models\RecurringInvoice,App\Models\PurchaseOrder,App\Models\Payment',
'entity_id' => 'bail|required', 'entity_id' => ['bail', 'required', Rule::exists($this->entity_plural, 'id')->where('company_id', $user->company()->id)],
'cc_email.*' => 'bail|sometimes|email', 'cc_email.*' => 'bail|sometimes|email',
]; ];
@ -70,6 +75,8 @@ class SendEmailRequest extends Request
$input['entity_id'] = $this->decodePrimaryKey($input['entity_id']); $input['entity_id'] = $this->decodePrimaryKey($input['entity_id']);
} }
$this->entity_plural = Str::plural($input['entity']) ?? '';
if (isset($input['entity'])) { if (isset($input['entity'])) {
$input['entity'] = "App\Models\\".ucfirst(Str::camel($input['entity'])); $input['entity'] = "App\Models\\".ucfirst(Str::camel($input['entity']));
} }