added proper validation message for dimensions

This commit is contained in:
Denis Duliçi 2022-07-24 00:36:20 +03:00
parent 4abd58ad1d
commit 38b2b02281
10 changed files with 200 additions and 61 deletions

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Auth; namespace App\Http\Requests\Auth;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
class User extends FormRequest class User extends FormRequest
{ {
@ -26,7 +27,9 @@ class User extends FormRequest
$picture = 'nullable'; $picture = 'nullable';
if ($this->files->get('picture')) { if ($this->files->get('picture')) {
$picture = 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000'; $picture = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
} }
$email = 'required|email:rfc,dns'; $email = 'required|email:rfc,dns';
@ -59,13 +62,26 @@ class User extends FormRequest
$password = $change_password ? '|confirmed' : ''; $password = $change_password ? '|confirmed' : '';
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'email' => $email, 'email' => $email,
'current_password' => 'required_if:change_password,true' . $current_password, 'current_password' => 'required_if:change_password,true' . $current_password,
'password' => 'required_if:change_password,true' . $password, 'password' => 'required_if:change_password,true' . $password,
'companies' => $companies, 'companies' => $companies,
'roles' => $roles, 'roles' => $roles,
'picture' => $picture, 'picture' => $picture,
];
}
public function messages()
{
$picture_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans_choice('general.pictures', 1)),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'picture.dimensions' => $picture_dimensions,
]; ];
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Common; namespace App\Http\Requests\Common;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
class Company extends FormRequest class Company extends FormRequest
{ {
@ -16,15 +17,30 @@ class Company extends FormRequest
$logo = 'nullable'; $logo = 'nullable';
if ($this->files->get('logo')) { if ($this->files->get('logo')) {
$logo = 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000'; $logo = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
} }
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'email' => 'required|email:rfc,dns', 'email' => 'required|email:rfc,dns',
'currency' => 'required|string', 'currency' => 'required|string',
'domain' => 'nullable|string', 'domain' => 'nullable|string',
'logo' => $logo, 'logo' => $logo,
];
}
public function messages()
{
$logo_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans('settings.company.logo')),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'logo.dimensions' => $logo_dimensions,
]; ];
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Common; namespace App\Http\Requests\Common;
use App\Abstracts\Http\FormRequest; use App\Abstracts\Http\FormRequest;
use Illuminate\Support\Str;
class Contact extends FormRequest class Contact extends FormRequest
{ {
@ -46,17 +47,32 @@ class Contact extends FormRequest
} }
if ($this->files->get('logo')) { if ($this->files->get('logo')) {
$logo = 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000'; $logo = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
} }
return [ return [
'type' => 'required|string', 'type' => 'required|string',
'name' => 'required|string', 'name' => 'required|string',
'email' => $email, 'email' => $email,
'user_id' => 'integer|nullable', 'user_id' => 'integer|nullable',
'currency_code' => 'required|string|currency', 'currency_code' => 'required|string|currency',
'enabled' => 'integer|boolean', 'enabled' => 'integer|boolean',
'logo' => $logo, 'logo' => $logo,
];
}
public function messages()
{
$logo_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans_choice('general.pictures', 1)),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'logo.dimensions' => $logo_dimensions,
]; ];
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Common; namespace App\Http\Requests\Common;
use App\Abstracts\Http\FormRequest; use App\Abstracts\Http\FormRequest;
use Illuminate\Support\Str;
class Item extends FormRequest class Item extends FormRequest
{ {
@ -16,7 +17,9 @@ class Item extends FormRequest
$picture = $sale_price = $purchase_price = 'nullable'; $picture = $sale_price = $purchase_price = 'nullable';
if ($this->files->get('picture')) { if ($this->files->get('picture')) {
$picture = 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000'; $picture = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
} }
if ($this->request->get('sale_information') == 'true') { if ($this->request->get('sale_information') == 'true') {
@ -28,14 +31,27 @@ class Item extends FormRequest
} }
return [ return [
'type' => 'required|string', 'type' => 'required|string',
'name' => 'required|string', 'name' => 'required|string',
'sale_price' => $sale_price . '|regex:/^(?=.*?[0-9])[0-9.,]+$/', 'sale_price' => $sale_price . '|regex:/^(?=.*?[0-9])[0-9.,]+$/',
'purchase_price'=> $purchase_price . '|regex:/^(?=.*?[0-9])[0-9.,]+$/', 'purchase_price' => $purchase_price . '|regex:/^(?=.*?[0-9])[0-9.,]+$/',
'tax_ids' => 'nullable|array', 'tax_ids' => 'nullable|array',
'category_id' => 'nullable|integer', 'category_id' => 'nullable|integer',
'enabled' => 'integer|boolean', 'enabled' => 'integer|boolean',
'picture' => $picture, 'picture' => $picture,
];
}
public function messages()
{
$picture_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans_choice('general.pictures', 1)),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'picture.dimensions' => $picture_dimensions,
]; ];
} }
} }

View File

@ -46,23 +46,23 @@ class Document extends FormRequest
$company_id = (int) $this->request->get('company_id'); $company_id = (int) $this->request->get('company_id');
$rules = [ $rules = [
'type' => 'required|string', 'type' => 'required|string',
'document_number' => 'required|string|unique:documents,NULL,' . $id . ',id,type,' . $type . ',company_id,' . $company_id . ',deleted_at,NULL', 'document_number' => 'required|string|unique:documents,NULL,' . $id . ',id,type,' . $type . ',company_id,' . $company_id . ',deleted_at,NULL',
'status' => 'required|string', 'status' => 'required|string',
'issued_at' => 'required|date_format:Y-m-d H:i:s|before_or_equal:due_at', 'issued_at' => 'required|date_format:Y-m-d H:i:s|before_or_equal:due_at',
'due_at' => 'required|date_format:Y-m-d H:i:s|after_or_equal:issued_at', 'due_at' => 'required|date_format:Y-m-d H:i:s|after_or_equal:issued_at',
'amount' => 'required', 'amount' => 'required',
'items.*.name' => 'required|string', 'items.*.name' => 'required|string',
'items.*.price' => 'required|amount', 'items.*.price' => 'required|amount',
'currency_code' => 'required|string|currency', 'currency_code' => 'required|string|currency',
'currency_rate' => 'required|gt:0', 'currency_rate' => 'required|gt:0',
'contact_id' => 'required|integer', 'contact_id' => 'required|integer',
'contact_name' => 'required|string', 'contact_name' => 'required|string',
'category_id' => 'required|integer', 'category_id' => 'required|integer',
'company_logo' => $company_logo, 'company_logo' => $company_logo,
'attachment.*' => $attachment, 'attachment.*' => $attachment,
'recurring_count' => 'gte:0', 'recurring_count' => 'gte:0',
'recurring_interval' => 'exclude_unless:recurring_frequency,custom|gt:0', 'recurring_interval' => 'exclude_unless:recurring_frequency,custom|gt:0',
]; ];
$items = $this->request->all('items'); $items = $this->request->all('items');
@ -112,6 +112,12 @@ class Document extends FormRequest
} }
} }
$messages['company_logo.dimensions'] = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans('settings.company.logo')),
'width' => '1000',
'height' => '1000',
]);
return $messages; return $messages;
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Portal; namespace App\Http\Requests\Portal;
use Illuminate\Foundation\Http\FormRequest; use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
class Profile extends FormRequest class Profile extends FormRequest
{ {
@ -18,7 +19,9 @@ class Profile extends FormRequest
$picture = 'nullable'; $picture = 'nullable';
if ($this->files->get('picture')) { if ($this->files->get('picture')) {
$picture = 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000'; $picture = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
} }
$email = 'required|email:rfc,dns|unique:users,email,' . $id . ',id,deleted_at,NULL'; $email = 'required|email:rfc,dns|unique:users,email,' . $id . ',id,deleted_at,NULL';
@ -32,11 +35,24 @@ class Profile extends FormRequest
} }
return [ return [
'name' => 'required|string', 'name' => 'required|string',
'email' => $email, 'email' => $email,
'current_password' => 'required_if:change_password,true|current_password', 'current_password' => 'required_if:change_password,true|current_password',
'password' => 'required_if:change_password,true|confirmed', 'password' => 'required_if:change_password,true|confirmed',
'picture' => $picture, 'picture' => $picture,
];
}
public function messages()
{
$picture_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans_choice('general.pictures', 1)),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'picture.dimensions' => $picture_dimensions,
]; ];
} }
} }

View File

@ -3,6 +3,7 @@
namespace App\Http\Requests\Setting; namespace App\Http\Requests\Setting;
use App\Abstracts\Http\FormRequest; use App\Abstracts\Http\FormRequest;
use Illuminate\Support\Str;
class Setting extends FormRequest class Setting extends FormRequest
{ {
@ -19,18 +20,22 @@ class Setting extends FormRequest
switch ($prefix) { switch ($prefix) {
case 'company': case 'company':
$logo = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
$rules = [ $rules = [
'name' => 'required|string', 'name' => 'required|string',
'email' => 'required|email', 'email' => 'required|email',
'logo' => 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000', 'logo' => $logo,
]; ];
break; break;
case 'default': case 'default':
$rules = [ $rules = [
'currency' => 'required|string|currency', 'currency' => 'required|string|currency',
'locale' => 'required|string', 'locale' => 'required|string',
'payment_method' => 'required|string', 'payment_method' => 'required|string',
]; ];
break; break;
@ -38,4 +43,17 @@ class Setting extends FormRequest
return $rules; return $rules;
} }
public function messages()
{
$logo_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans('settings.company.logo')),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'logo.dimensions' => $logo_dimensions,
];
}
} }

View File

@ -5,6 +5,7 @@ namespace App\Http\Requests\Wizard;
use App\Abstracts\Http\FormRequest; use App\Abstracts\Http\FormRequest;
use App\Traits\Modules as RemoteModules; use App\Traits\Modules as RemoteModules;
use Illuminate\Validation\Factory as ValidationFactory; use Illuminate\Validation\Factory as ValidationFactory;
use Illuminate\Support\Str;
class Company extends FormRequest class Company extends FormRequest
{ {
@ -31,17 +32,32 @@ class Company extends FormRequest
$logo = 'nullable'; $logo = 'nullable';
if ($this->files->get('logo')) { if ($this->files->get('logo')) {
$logo = 'mimes:' . config('filesystems.mimes') . '|between:0,' . config('filesystems.max_size') * 1024 . '|dimensions:max_width=1000,max_height=1000'; $logo = 'mimes:' . config('filesystems.mimes')
. '|between:0,' . config('filesystems.max_size') * 1024
. '|dimensions:max_width=' . config('filesystems.max_width') . ',max_height=' . config('filesystems.max_height');
} }
$rules = [ $rules = [
'logo' => $logo, 'logo' => $logo,
]; ];
if (!setting('apps.api_key', false) && !empty($this->request->get('api_key'))) { if (! setting('apps.api_key', false) && ! empty($this->request->get('api_key'))) {
$rules['api_key'] = 'string|check'; $rules['api_key'] = 'string|check';
} }
return $rules; return $rules;
} }
public function messages()
{
$logo_dimensions = trans('validation.custom.invalid_dimension', [
'attribute' => Str::lower(trans('settings.company.logo')),
'width' => config('filesystems.max_width'),
'height' => config('filesystems.max_height'),
]);
return [
'logo.dimensions' => $logo_dimensions,
];
}
} }

View File

@ -45,6 +45,24 @@ return [
'max_size' => env('FILESYSTEM_MAX_SIZE', '2'), 'max_size' => env('FILESYSTEM_MAX_SIZE', '2'),
/*
|--------------------------------------------------------------------------
| Allowed image max width, in pixes
|--------------------------------------------------------------------------
*/
'max_width' => env('FILESYSTEM_MAX_WIDTH', '1000'),
/*
|--------------------------------------------------------------------------
| Allowed image max height, in pixes
|--------------------------------------------------------------------------
*/
'max_height' => env('FILESYSTEM_MAX_HEIGHT', '1000'),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------
| Filesystem Disks | Filesystem Disks

View File

@ -141,6 +141,7 @@ return [
'invalid_currency' => 'The :attribute code is invalid.', 'invalid_currency' => 'The :attribute code is invalid.',
'invalid_amount' => 'The amount :attribute is invalid.', 'invalid_amount' => 'The amount :attribute is invalid.',
'invalid_extension' => 'The file extension is invalid.', 'invalid_extension' => 'The file extension is invalid.',
'invalid_dimension' => 'The :attribute dimensions must be max :width x :height px.',
], ],
/* /*