Clean up min/max sizes of requests.

This commit is contained in:
James Cole
2024-01-05 09:48:59 +01:00
parent 68edcfc4e8
commit fe7bb02dc5
46 changed files with 156 additions and 156 deletions

View File

@@ -101,7 +101,7 @@ class StoreRequest extends FormRequest
'type' => 'required|max:1024|min:1|'.sprintf('in:%s', $types), 'type' => 'required|max:1024|min:1|'.sprintf('in:%s', $types),
'iban' => ['iban', 'nullable', new UniqueIban(null, $type)], 'iban' => ['iban', 'nullable', new UniqueIban(null, $type)],
'bic' => 'bic|nullable', 'bic' => 'bic|nullable',
'account_number' => ['between:1,255', 'nullable', new UniqueAccountNumber(null, $type)], 'account_number' => ['min:1', 'max:255', 'nullable', new UniqueAccountNumber(null, $type)],
'opening_balance' => 'numeric|required_with:opening_balance_date|nullable', 'opening_balance' => 'numeric|required_with:opening_balance_date|nullable',
'opening_balance_date' => 'date|required_with:opening_balance|nullable', 'opening_balance_date' => 'date|required_with:opening_balance|nullable',
'virtual_balance' => 'numeric|nullable', 'virtual_balance' => 'numeric|nullable',
@@ -117,7 +117,7 @@ class StoreRequest extends FormRequest
'liability_amount' => ['required_with:liability_start_date', new IsValidPositiveAmount()], 'liability_amount' => ['required_with:liability_start_date', new IsValidPositiveAmount()],
'liability_start_date' => 'required_with:liability_amount|date', 'liability_start_date' => 'required_with:liability_amount|date',
'liability_direction' => 'nullable|required_if:type,liability|required_if:type,liabilities|in:credit,debit', 'liability_direction' => 'nullable|required_if:type,liability|required_if:type,liabilities|in:credit,debit',
'interest' => 'between:0,100|numeric', 'interest' => 'min:0|max:100|numeric',
'interest_period' => sprintf('nullable|in:%s', implode(',', config('firefly.interest_periods'))), 'interest_period' => sprintf('nullable|in:%s', implode(',', config('firefly.interest_periods'))),
'notes' => 'min:0|max:65536', 'notes' => 'min:0|max:65536',
]; ];

View File

@@ -91,7 +91,7 @@ class UpdateRequest extends FormRequest
'type' => sprintf('in:%s', $types), 'type' => sprintf('in:%s', $types),
'iban' => ['iban', 'nullable', new UniqueIban($account, $this->convertString('type'))], 'iban' => ['iban', 'nullable', new UniqueIban($account, $this->convertString('type'))],
'bic' => 'bic|nullable', 'bic' => 'bic|nullable',
'account_number' => ['between:1,255', 'nullable', new UniqueAccountNumber($account, $this->convertString('type'))], 'account_number' => ['min:1', 'max:255', 'nullable', new UniqueAccountNumber($account, $this->convertString('type'))],
'opening_balance' => 'numeric|required_with:opening_balance_date|nullable', 'opening_balance' => 'numeric|required_with:opening_balance_date|nullable',
'opening_balance_date' => 'date|required_with:opening_balance|nullable', 'opening_balance_date' => 'date|required_with:opening_balance|nullable',
'virtual_balance' => 'numeric|nullable', 'virtual_balance' => 'numeric|nullable',
@@ -105,7 +105,7 @@ class UpdateRequest extends FormRequest
'monthly_payment_date' => 'date|nullable|required_if:account_role,ccAsset|required_if:credit_card_type,monthlyFull', 'monthly_payment_date' => 'date|nullable|required_if:account_role,ccAsset|required_if:credit_card_type,monthlyFull',
'liability_type' => 'required_if:type,liability|in:loan,debt,mortgage', 'liability_type' => 'required_if:type,liability|in:loan,debt,mortgage',
'liability_direction' => 'required_if:type,liability|in:credit,debit', 'liability_direction' => 'required_if:type,liability|in:credit,debit',
'interest' => 'required_if:type,liability|between:0,100|numeric', 'interest' => 'required_if:type,liability|min:0|max:100|numeric',
'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly', 'interest_period' => 'required_if:type,liability|in:daily,monthly,yearly',
'notes' => 'min:0|max:65536', 'notes' => 'min:0|max:65536',
]; ];

View File

@@ -66,9 +66,9 @@ class StoreRequest extends FormRequest
$model = $this->convertString('attachable_type'); $model = $this->convertString('attachable_type');
return [ return [
'filename' => 'required|between:1,255', 'filename' => 'required|min:1|max:255',
'title' => 'between:1,255', 'title' => ['min:1', 'max:255'],
'notes' => 'between:1,65000', 'notes' => 'min:1|max:32768',
'attachable_type' => sprintf('required|in:%s', $models), 'attachable_type' => sprintf('required|in:%s', $models),
'attachable_id' => ['required', 'numeric', new IsValidAttachmentModel($model)], 'attachable_id' => ['required', 'numeric', new IsValidAttachmentModel($model)],
]; ];

View File

@@ -68,9 +68,9 @@ class UpdateRequest extends FormRequest
$model = $this->convertString('attachable_type'); $model = $this->convertString('attachable_type');
return [ return [
'filename' => 'between:1,255', 'filename' => ['min:1', 'max:255'],
'title' => 'between:1,255', 'title' => ['min:1', 'max:255'],
'notes' => 'between:1,65000', 'notes' => 'min:1|max:32768',
'attachable_type' => sprintf('in:%s', $models), 'attachable_type' => sprintf('in:%s', $models),
'attachable_id' => ['numeric', new IsValidAttachmentModel($model)], 'attachable_id' => ['numeric', new IsValidAttachmentModel($model)],
]; ];

View File

@@ -72,7 +72,7 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'between:1,255|uniqueObjectForUser:bills,name', 'name' => 'min:1|max:255|uniqueObjectForUser:bills,name',
'amount_min' => ['required', new IsValidPositiveAmount()], 'amount_min' => ['required', new IsValidPositiveAmount()],
'amount_max' => ['required', new IsValidPositiveAmount()], 'amount_max' => ['required', new IsValidPositiveAmount()],
'currency_id' => 'numeric|exists:transaction_currencies,id', 'currency_id' => 'numeric|exists:transaction_currencies,id',
@@ -81,7 +81,7 @@ class StoreRequest extends FormRequest
'end_date' => 'date|after:date', 'end_date' => 'date|after:date',
'extension_date' => 'date|after:date', 'extension_date' => 'date|after:date',
'repeat_freq' => 'in:weekly,monthly,quarterly,half-year,yearly|required', 'repeat_freq' => 'in:weekly,monthly,quarterly,half-year,yearly|required',
'skip' => 'between:0,31', 'skip' => 'min:0|max:31|numeric',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'notes' => 'min:1|max:32768', 'notes' => 'min:1|max:32768',
]; ];

View File

@@ -75,7 +75,7 @@ class UpdateRequest extends FormRequest
$bill = $this->route()->parameter('bill'); $bill = $this->route()->parameter('bill');
return [ return [
'name' => sprintf('between:1,255|uniqueObjectForUser:bills,name,%d', $bill->id), 'name' => sprintf('min:1|max:255|uniqueObjectForUser:bills,name,%d', $bill->id),
'amount_min' => ['nullable', new IsValidPositiveAmount()], 'amount_min' => ['nullable', new IsValidPositiveAmount()],
'amount_max' => ['nullable', new IsValidPositiveAmount()], 'amount_max' => ['nullable', new IsValidPositiveAmount()],
'currency_id' => 'numeric|exists:transaction_currencies,id', 'currency_id' => 'numeric|exists:transaction_currencies,id',
@@ -84,7 +84,7 @@ class UpdateRequest extends FormRequest
'end_date' => 'date|after:date', 'end_date' => 'date|after:date',
'extension_date' => 'date|after:date', 'extension_date' => 'date|after:date',
'repeat_freq' => 'in:weekly,monthly,quarterly,half-year,yearly', 'repeat_freq' => 'in:weekly,monthly,quarterly,half-year,yearly',
'skip' => 'between:0,31', 'skip' => 'min:0|max:31|numeric',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'notes' => 'min:1|max:32768', 'notes' => 'min:1|max:32768',
]; ];

View File

@@ -68,7 +68,7 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,100|uniqueObjectForUser:budgets,name', 'name' => 'required|min:1|max:255|uniqueObjectForUser:budgets,name',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'currency_id' => 'exists:transaction_currencies,id', 'currency_id' => 'exists:transaction_currencies,id',
'currency_code' => 'exists:transaction_currencies,code', 'currency_code' => 'exists:transaction_currencies,code',

View File

@@ -81,7 +81,7 @@ class UpdateRequest extends FormRequest
$budget = $this->route()->parameter('budget'); $budget = $this->route()->parameter('budget');
return [ return [
'name' => sprintf('between:1,100|uniqueObjectForUser:budgets,name,%d', $budget->id), 'name' => sprintf('min:1|max:100|uniqueObjectForUser:budgets,name,%d', $budget->id),
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'notes' => 'nullable|min:1|max:32768', 'notes' => 'nullable|min:1|max:32768',
'auto_budget_type' => 'in:reset,rollover,adjusted,none', 'auto_budget_type' => 'in:reset,rollover,adjusted,none',

View File

@@ -52,7 +52,7 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,100|uniqueObjectForUser:categories,name', 'name' => 'required|min:1|max:100|uniqueObjectForUser:categories,name',
]; ];
} }
} }

View File

@@ -58,7 +58,7 @@ class UpdateRequest extends FormRequest
$category = $this->route()->parameter('category'); $category = $this->route()->parameter('category');
return [ return [
'name' => sprintf('between:1,100|uniqueObjectForUser:categories,name,%d', $category->id), 'name' => sprintf('min:1|max:100|uniqueObjectForUser:categories,name,%d', $category->id),
]; ];
} }
} }

View File

@@ -64,11 +64,11 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,255|uniquePiggyBankForUser', 'name' => 'required|min:1|max:255|uniquePiggyBankForUser',
'current_amount' => ['nullable', new IsValidPositiveAmount()], 'current_amount' => ['nullable', new IsValidPositiveAmount()],
'account_id' => 'required|numeric|belongsToUser:accounts,id', 'account_id' => 'required|numeric|belongsToUser:accounts,id',
'object_group_id' => 'numeric|belongsToUser:object_groups,id', 'object_group_id' => 'numeric|belongsToUser:object_groups,id',
'object_group_title' => 'between:1,255', 'object_group_title' => ['min:1', 'max:255'],
'target_amount' => ['required', new IsValidPositiveAmount()], 'target_amount' => ['required', new IsValidPositiveAmount()],
'start_date' => 'date|nullable', 'start_date' => 'date|nullable',
'target_date' => 'date|nullable|after:start_date', 'target_date' => 'date|nullable|after:start_date',

View File

@@ -69,7 +69,7 @@ class UpdateRequest extends FormRequest
$piggyBank = $this->route()->parameter('piggyBank'); $piggyBank = $this->route()->parameter('piggyBank');
return [ return [
'name' => 'between:1,255|uniquePiggyBankForUser:'.$piggyBank->id, 'name' => 'min:1|max:255|uniquePiggyBankForUser:'.$piggyBank->id,
'current_amount' => ['nullable', new LessThanPiggyTarget(), new IsValidPositiveAmount()], 'current_amount' => ['nullable', new LessThanPiggyTarget(), new IsValidPositiveAmount()],
'target_amount' => ['nullable', new IsValidPositiveAmount()], 'target_amount' => ['nullable', new IsValidPositiveAmount()],
'start_date' => 'date|nullable', 'start_date' => 'date|nullable',

View File

@@ -79,20 +79,20 @@ class StoreRequest extends FormRequest
{ {
return [ return [
'type' => 'required|in:withdrawal,transfer,deposit', 'type' => 'required|in:withdrawal,transfer,deposit',
'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title', 'title' => 'required|min:1|max:255|uniqueObjectForUser:recurrences,title',
'description' => 'between:1,65000', 'description' => 'min:1|max:32768',
'first_date' => 'required|date', 'first_date' => 'required|date',
'apply_rules' => [new IsBoolean()], 'apply_rules' => [new IsBoolean()],
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'repeat_until' => 'nullable|date', 'repeat_until' => 'nullable|date',
'nr_of_repetitions' => 'nullable|numeric|between:1,31', 'nr_of_repetitions' => 'nullable|numeric|min:1|max:31',
'repetitions.*.type' => 'required|in:daily,weekly,ndom,monthly,yearly', 'repetitions.*.type' => 'required|in:daily,weekly,ndom,monthly,yearly',
'repetitions.*.moment' => 'between:0,10', 'repetitions.*.moment' => 'min:0|max:10',
'repetitions.*.skip' => 'nullable|numeric|between:0,31', 'repetitions.*.skip' => 'nullable|numeric|min:0|max:31',
'repetitions.*.weekend' => 'numeric|min:1|max:4', 'repetitions.*.weekend' => 'numeric|min:1|max:4',
'transactions.*.description' => 'required|between:1,255', 'transactions.*.description' => 'required|min:1|max:255',
'transactions.*.amount' => ['required', new IsValidPositiveAmount()], 'transactions.*.amount' => ['required', new IsValidPositiveAmount()],
'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()], 'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()],
'transactions.*.currency_id' => 'nullable|numeric|exists:transaction_currencies,id', 'transactions.*.currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
@@ -100,18 +100,18 @@ class StoreRequest extends FormRequest
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id', 'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code', 'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'between:1,255|nullable', 'transactions.*.destination_name' => 'min:1|max:255|nullable',
// new and updated fields: // new and updated fields:
'transactions.*.budget_id' => ['nullable', 'mustExist:budgets,id', new BelongsUser()], 'transactions.*.budget_id' => ['nullable', 'mustExist:budgets,id', new BelongsUser()],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['nullable', 'mustExist:categories,id', new BelongsUser()], 'transactions.*.category_id' => ['nullable', 'mustExist:categories,id', new BelongsUser()],
'transactions.*.category_name' => 'between:1,255|nullable', 'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.piggy_bank_id' => ['nullable', 'numeric', 'mustExist:piggy_banks,id', new BelongsUser()], 'transactions.*.piggy_bank_id' => ['nullable', 'numeric', 'mustExist:piggy_banks,id', new BelongsUser()],
'transactions.*.piggy_bank_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.piggy_bank_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.tags' => 'nullable|between:1,255', 'transactions.*.tags' => 'nullable|min:1|max:255',
]; ];
} }

View File

@@ -86,20 +86,20 @@ class UpdateRequest extends FormRequest
$recurrence = $this->route()->parameter('recurrence'); $recurrence = $this->route()->parameter('recurrence');
return [ return [
'title' => sprintf('between:1,255|uniqueObjectForUser:recurrences,title,%d', $recurrence->id), 'title' => sprintf('min:1|max:255|uniqueObjectForUser:recurrences,title,%d', $recurrence->id),
'description' => 'between:1,65000', 'description' => 'min:1|max:32768',
'first_date' => 'date', 'first_date' => 'date',
'apply_rules' => [new IsBoolean()], 'apply_rules' => [new IsBoolean()],
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'repeat_until' => 'nullable|date', 'repeat_until' => 'nullable|date',
'nr_of_repetitions' => 'nullable|numeric|between:1,31', 'nr_of_repetitions' => 'nullable|numeric|min:1|max:31',
'repetitions.*.type' => 'in:daily,weekly,ndom,monthly,yearly', 'repetitions.*.type' => 'in:daily,weekly,ndom,monthly,yearly',
'repetitions.*.moment' => 'between:0,10', 'repetitions.*.moment' => 'min:0|max:10|numeric',
'repetitions.*.skip' => 'nullable|numeric|between:0,31', 'repetitions.*.skip' => 'nullable|numeric|min:0|max:31',
'repetitions.*.weekend' => 'nullable|numeric|min:1|max:4', 'repetitions.*.weekend' => 'nullable|numeric|min:1|max:4',
'transactions.*.description' => 'between:1,255', 'transactions.*.description' => ['min:1', 'max:255'],
'transactions.*.amount' => [new IsValidPositiveAmount()], 'transactions.*.amount' => [new IsValidPositiveAmount()],
'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()], 'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()],
'transactions.*.currency_id' => 'nullable|numeric|exists:transaction_currencies,id', 'transactions.*.currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
@@ -107,18 +107,18 @@ class UpdateRequest extends FormRequest
'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id', 'transactions.*.foreign_currency_id' => 'nullable|numeric|exists:transaction_currencies,id',
'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code', 'transactions.*.foreign_currency_code' => 'nullable|min:3|max:51|exists:transaction_currencies,code',
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'between:1,255|nullable', 'transactions.*.destination_name' => 'min:1|max:255|nullable',
// new and updated fields: // new and updated fields:
'transactions.*.budget_id' => ['nullable', 'mustExist:budgets,id', new BelongsUser()], 'transactions.*.budget_id' => ['nullable', 'mustExist:budgets,id', new BelongsUser()],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['nullable', 'mustExist:categories,id', new BelongsUser()], 'transactions.*.category_id' => ['nullable', 'mustExist:categories,id', new BelongsUser()],
'transactions.*.category_name' => 'between:1,255|nullable', 'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.piggy_bank_id' => ['nullable', 'numeric', 'mustExist:piggy_banks,id', new BelongsUser()], 'transactions.*.piggy_bank_id' => ['nullable', 'numeric', 'mustExist:piggy_banks,id', new BelongsUser()],
'transactions.*.piggy_bank_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.piggy_bank_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.tags' => 'nullable|between:1,255', 'transactions.*.tags' => 'nullable|min:1|max:255',
]; ];
} }

View File

@@ -76,10 +76,10 @@ class StoreRequest extends FormRequest
$contextActions = implode(',', config('firefly.context-rule-actions')); $contextActions = implode(',', config('firefly.context-rule-actions'));
return [ return [
'title' => 'required|between:1,100|uniqueObjectForUser:rules,title', 'title' => 'required|min:1|max:100|uniqueObjectForUser:rules,title',
'description' => 'between:1,5000|nullable', 'description' => 'min:1|max:32768|nullable',
'rule_group_id' => 'belongsToUser:rule_groups|required_without:rule_group_title', 'rule_group_id' => 'belongsToUser:rule_groups|required_without:rule_group_title',
'rule_group_title' => 'nullable|between:1,255|required_without:rule_group_id|belongsToUser:rule_groups,title', 'rule_group_title' => 'nullable|min:1|max:255|required_without:rule_group_id|belongsToUser:rule_groups,title',
'trigger' => 'required|in:store-journal,update-journal', 'trigger' => 'required|in:store-journal,update-journal',
'triggers.*.type' => 'required|in:'.implode(',', $validTriggers), 'triggers.*.type' => 'required|in:'.implode(',', $validTriggers),
'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024', 'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024',

View File

@@ -85,10 +85,10 @@ class UpdateRequest extends FormRequest
$contextActions = implode(',', config('firefly.context-rule-actions')); $contextActions = implode(',', config('firefly.context-rule-actions'));
return [ return [
'title' => sprintf('between:1,100|uniqueObjectForUser:rules,title,%d', $rule->id), 'title' => sprintf('min:1|max:100|uniqueObjectForUser:rules,title,%d', $rule->id),
'description' => 'between:1,5000|nullable', 'description' => 'min:1|max:32768|nullable',
'rule_group_id' => 'belongsToUser:rule_groups', 'rule_group_id' => 'belongsToUser:rule_groups',
'rule_group_title' => 'nullable|between:1,255|belongsToUser:rule_groups,title', 'rule_group_title' => 'nullable|min:1|max:255|belongsToUser:rule_groups,title',
'trigger' => 'in:store-journal,update-journal', 'trigger' => 'in:store-journal,update-journal',
'triggers.*.type' => 'required|in:'.implode(',', $validTriggers), 'triggers.*.type' => 'required|in:'.implode(',', $validTriggers),
'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024', 'triggers.*.value' => 'required_if:actions.*.type,'.$contextTriggers.'|min:1|ruleTriggerValue|max:1024',
@@ -101,7 +101,7 @@ class UpdateRequest extends FormRequest
'strict' => [new IsBoolean()], 'strict' => [new IsBoolean()],
'stop_processing' => [new IsBoolean()], 'stop_processing' => [new IsBoolean()],
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'order' => 'numeric|between:1,1337', 'order' => 'numeric|min:1|max:2048',
]; ];
} }

View File

@@ -64,8 +64,8 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'title' => 'required|between:1,100|uniqueObjectForUser:rule_groups,title', 'title' => 'required|min:1|max:100|uniqueObjectForUser:rule_groups,title',
'description' => 'between:1,5000|nullable', 'description' => 'min:1|max:32768|nullable',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
]; ];
} }

View File

@@ -62,8 +62,8 @@ class UpdateRequest extends FormRequest
$ruleGroup = $this->route()->parameter('ruleGroup'); $ruleGroup = $this->route()->parameter('ruleGroup');
return [ return [
'title' => 'between:1,100|uniqueObjectForUser:rule_groups,title,'.$ruleGroup->id, 'title' => 'min:1|max:100|uniqueObjectForUser:rule_groups,title,'.$ruleGroup->id,
'description' => 'between:1,5000|nullable', 'description' => 'min:1|max:32768|nullable',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
]; ];
} }

View File

@@ -78,7 +78,7 @@ class StoreRequest extends FormRequest
return [ return [
// basic fields for group: // basic fields for group:
'group_title' => 'between:1,1000|nullable', 'group_title' => 'min:1|max:1000|nullable',
'error_if_duplicate_hash' => [new IsBoolean()], 'error_if_duplicate_hash' => [new IsBoolean()],
'apply_rules' => [new IsBoolean()], 'apply_rules' => [new IsBoolean()],
@@ -98,37 +98,37 @@ class StoreRequest extends FormRequest
'transactions.*.foreign_amount' => ['nullable', new IsValidZeroOrMoreAmount()], 'transactions.*.foreign_amount' => ['nullable', new IsValidZeroOrMoreAmount()],
// description // description
'transactions.*.description' => 'nullable|between:1,1000', 'transactions.*.description' => 'nullable|min:1|max:1000',
// source of transaction // source of transaction
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.source_iban' => 'between:1,255|nullable|iban', 'transactions.*.source_iban' => 'min:1|max:255|nullable|iban',
'transactions.*.source_number' => 'between:1,255|nullable', 'transactions.*.source_number' => 'min:1|max:255|nullable',
'transactions.*.source_bic' => 'between:1,255|nullable|bic', 'transactions.*.source_bic' => 'min:1|max:255|nullable|bic',
// destination of transaction // destination of transaction
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'between:1,255|nullable', 'transactions.*.destination_name' => 'min:1|max:255|nullable',
'transactions.*.destination_iban' => 'between:1,255|nullable|iban', 'transactions.*.destination_iban' => 'min:1|max:255|nullable|iban',
'transactions.*.destination_number' => 'between:1,255|nullable', 'transactions.*.destination_number' => 'min:1|max:255|nullable',
'transactions.*.destination_bic' => 'between:1,255|nullable|bic', 'transactions.*.destination_bic' => 'min:1|max:255|nullable|bic',
// budget, category, bill and piggy // budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser()], 'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser()],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser(), 'nullable'], 'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser(), 'nullable'],
'transactions.*.category_name' => 'between:1,255|nullable', 'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser()], 'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser()],
'transactions.*.bill_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.bill_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.piggy_bank_id' => ['numeric', 'nullable', 'mustExist:piggy_banks,id', new BelongsUser()], 'transactions.*.piggy_bank_id' => ['numeric', 'nullable', 'mustExist:piggy_banks,id', new BelongsUser()],
'transactions.*.piggy_bank_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.piggy_bank_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
// other interesting fields // other interesting fields
'transactions.*.reconciled' => [new IsBoolean()], 'transactions.*.reconciled' => [new IsBoolean()],
'transactions.*.notes' => 'min:1|max:50000|nullable', 'transactions.*.notes' => 'min:1|max:32768|nullable',
'transactions.*.tags' => 'between:0,255', 'transactions.*.tags' => 'min:0|max:255',
'transactions.*.tags.*' => 'between:0,255', 'transactions.*.tags.*' => 'min:0|max:255',
// meta info fields // meta info fields
'transactions.*.internal_reference' => 'min:1|max:255|nullable', 'transactions.*.internal_reference' => 'min:1|max:255|nullable',

View File

@@ -99,7 +99,7 @@ class UpdateRequest extends FormRequest
return [ return [
// basic fields for group: // basic fields for group:
'group_title' => 'between:1,1000|nullable', 'group_title' => 'min:1|max:1000|nullable',
'apply_rules' => [new IsBoolean()], 'apply_rules' => [new IsBoolean()],
// transaction rules (in array for splits): // transaction rules (in array for splits):
@@ -121,29 +121,29 @@ class UpdateRequest extends FormRequest
'transactions.*.foreign_amount' => ['nullable', new IsValidZeroOrMoreAmount()], 'transactions.*.foreign_amount' => ['nullable', new IsValidZeroOrMoreAmount()],
// description // description
'transactions.*.description' => 'nullable|between:1,1000', 'transactions.*.description' => 'nullable|min:1|max:1000',
// source of transaction // source of transaction
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.source_name' => 'min:1|max:255|nullable',
// destination of transaction // destination of transaction
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()], 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUser()],
'transactions.*.destination_name' => 'between:1,255|nullable', 'transactions.*.destination_name' => 'min:1|max:255|nullable',
// budget, category, bill and piggy // budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser(), 'nullable'], 'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUser(), 'nullable'],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser(), 'nullable'], 'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUser(), 'nullable'],
'transactions.*.category_name' => 'between:1,255|nullable', 'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser()], 'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUser()],
'transactions.*.bill_name' => ['between:1,255', 'nullable', new BelongsUser()], 'transactions.*.bill_name' => ['min:1', 'max:255', 'nullable', new BelongsUser()],
// other interesting fields // other interesting fields
'transactions.*.reconciled' => [new IsBoolean()], 'transactions.*.reconciled' => [new IsBoolean()],
'transactions.*.notes' => 'min:1|max:50000|nullable', 'transactions.*.notes' => 'min:1|max:32768|nullable',
'transactions.*.tags' => 'between:0,255|nullable', 'transactions.*.tags' => 'min:0|max:255|nullable',
'transactions.*.tags.*' => 'between:0,255', 'transactions.*.tags.*' => 'min:0|max:255',
// meta info fields // meta info fields
'transactions.*.internal_reference' => 'min:1|max:255|nullable', 'transactions.*.internal_reference' => 'min:1|max:255|nullable',

View File

@@ -66,10 +66,10 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,255|unique:transaction_currencies,name', 'name' => 'required|min:1|max:255|unique:transaction_currencies,name',
'code' => 'required|between:3,51|unique:transaction_currencies,code', 'code' => 'required|min:3|max:32|unique:transaction_currencies,code',
'symbol' => 'required|between:1,51|unique:transaction_currencies,symbol', 'symbol' => 'required|min:1|max:32|unique:transaction_currencies,symbol',
'decimal_places' => 'between:0,20|numeric|min:0|max:12', 'decimal_places' => 'numeric|min:0|max:12',
'enabled' => [new IsBoolean()], 'enabled' => [new IsBoolean()],
'default' => [new IsBoolean()], 'default' => [new IsBoolean()],
]; ];

View File

@@ -64,10 +64,10 @@ class UpdateRequest extends FormRequest
$currency = $this->route()->parameter('currency_code'); $currency = $this->route()->parameter('currency_code');
return [ return [
'name' => sprintf('between:1,255|unique:transaction_currencies,name,%d', $currency->id), 'name' => sprintf('min:1|max:255|unique:transaction_currencies,name,%d', $currency->id),
'code' => sprintf('between:3,51|unique:transaction_currencies,code,%d', $currency->id), 'code' => sprintf('min:3|max:32|unique:transaction_currencies,code,%d', $currency->id),
'symbol' => sprintf('between:1,51|unique:transaction_currencies,symbol,%d', $currency->id), 'symbol' => sprintf('min:1|max:32|unique:transaction_currencies,symbol,%d', $currency->id),
'decimal_places' => 'between:0,20|numeric|min:0|max:12', 'decimal_places' => 'numeric|min:0|max:12',
'enabled' => [new IsBoolean()], 'enabled' => [new IsBoolean()],
'default' => [new IsBoolean()], 'default' => [new IsBoolean()],
]; ];

View File

@@ -63,7 +63,7 @@ class StoreRequest extends FormRequest
'link_type_name' => 'exists:link_types,name|required_without:link_type_id', 'link_type_name' => 'exists:link_types,name|required_without:link_type_id',
'inward_id' => 'required|belongsToUser:transaction_journals,id|different:outward_id', 'inward_id' => 'required|belongsToUser:transaction_journals,id|different:outward_id',
'outward_id' => 'required|belongsToUser:transaction_journals,id|different:inward_id', 'outward_id' => 'required|belongsToUser:transaction_journals,id|different:inward_id',
'notes' => 'between:0,65000', 'notes' => 'min:1|max:32768|nullable',
]; ];
} }

View File

@@ -63,7 +63,7 @@ class UpdateRequest extends FormRequest
'link_type_name' => 'exists:link_types,name', 'link_type_name' => 'exists:link_types,name',
'inward_id' => 'belongsToUser:transaction_journals,id|different:outward_id', 'inward_id' => 'belongsToUser:transaction_journals,id|different:outward_id',
'outward_id' => 'belongsToUser:transaction_journals,id|different:inward_id', 'outward_id' => 'belongsToUser:transaction_journals,id|different:inward_id',
'notes' => 'between:0,65000', 'notes' => 'min:1|max:32768|nullable',
]; ];
} }

View File

@@ -72,7 +72,7 @@ class CreateRequest extends FormRequest
$validProtocols = config('firefly.valid_url_protocols'); $validProtocols = config('firefly.valid_url_protocols');
return [ return [
'title' => 'required|between:1,512|uniqueObjectForUser:webhooks,title', 'title' => 'required|min:1|max:255|uniqueObjectForUser:webhooks,title',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'trigger' => sprintf('required|in:%s', $triggers), 'trigger' => sprintf('required|in:%s', $triggers),
'response' => sprintf('required|in:%s', $responses), 'response' => sprintf('required|in:%s', $responses),

View File

@@ -85,7 +85,7 @@ class UpdateRequest extends FormRequest
$webhook = $this->route()->parameter('webhook'); $webhook = $this->route()->parameter('webhook');
return [ return [
'title' => sprintf('between:1,512|uniqueObjectForUser:webhooks,title,%d', $webhook->id), 'title' => sprintf('min:1|max:255|uniqueObjectForUser:webhooks,title,%d', $webhook->id),
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
'trigger' => sprintf('in:%s', $triggers), 'trigger' => sprintf('in:%s', $triggers),
'response' => sprintf('in:%s', $responses), 'response' => sprintf('in:%s', $responses),

View File

@@ -65,7 +65,7 @@ class UpdateRequest extends FormRequest
return ['value' => ['required', new IsBoolean()]]; return ['value' => ['required', new IsBoolean()]];
} }
if ('configuration.permission_update_check' === $name) { if ('configuration.permission_update_check' === $name) {
return ['value' => 'required|numeric|between:-1,1']; return ['value' => 'required|numeric|min:-1|max:1'];
} }
if ('configuration.last_update_check' === $name) { if ('configuration.last_update_check' === $name) {
return ['value' => 'required|numeric|min:464272080']; return ['value' => 'required|numeric|min:464272080'];

View File

@@ -91,7 +91,7 @@ class StoreRequest extends FormRequest
return [ return [
// basic fields for group: // basic fields for group:
'group_title' => 'between:1,1000|nullable', 'group_title' => 'min:1|max:1000|nullable',
'error_if_duplicate_hash' => [new IsBoolean()], 'error_if_duplicate_hash' => [new IsBoolean()],
'apply_rules' => [new IsBoolean()], 'apply_rules' => [new IsBoolean()],
@@ -111,37 +111,37 @@ class StoreRequest extends FormRequest
'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()], 'transactions.*.foreign_amount' => ['nullable', new IsValidPositiveAmount()],
// description // description
'transactions.*.description' => 'nullable|between:1,1000', 'transactions.*.description' => 'nullable|min:1|max:1000',
// source of transaction // source of transaction
'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUserGroup($userGroup)], 'transactions.*.source_id' => ['numeric', 'nullable', new BelongsUserGroup($userGroup)],
'transactions.*.source_name' => 'between:1,255|nullable', 'transactions.*.source_name' => 'min:1|max:255|nullable',
'transactions.*.source_iban' => 'between:1,255|nullable|iban', 'transactions.*.source_iban' => 'min:1|max:255|nullable|iban',
'transactions.*.source_number' => 'between:1,255|nullable', 'transactions.*.source_number' => 'min:1|max:255|nullable',
'transactions.*.source_bic' => 'between:1,255|nullable|bic', 'transactions.*.source_bic' => 'min:1|max:255|nullable|bic',
// destination of transaction // destination of transaction
'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUserGroup($userGroup)], 'transactions.*.destination_id' => ['numeric', 'nullable', new BelongsUserGroup($userGroup)],
'transactions.*.destination_name' => 'between:1,255|nullable', 'transactions.*.destination_name' => 'min:1|max:255|nullable',
'transactions.*.destination_iban' => 'between:1,255|nullable|iban', 'transactions.*.destination_iban' => 'min:1|max:255|nullable|iban',
'transactions.*.destination_number' => 'between:1,255|nullable', 'transactions.*.destination_number' => 'min:1|max:255|nullable',
'transactions.*.destination_bic' => 'between:1,255|nullable|bic', 'transactions.*.destination_bic' => 'min:1|max:255|nullable|bic',
// budget, category, bill and piggy // budget, category, bill and piggy
'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUserGroup($userGroup)], 'transactions.*.budget_id' => ['mustExist:budgets,id', new BelongsUserGroup($userGroup)],
'transactions.*.budget_name' => ['between:1,255', 'nullable', new BelongsUserGroup($userGroup)], 'transactions.*.budget_name' => ['min:1', 'max:255', 'nullable', new BelongsUserGroup($userGroup)],
'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUserGroup($userGroup), 'nullable'], 'transactions.*.category_id' => ['mustExist:categories,id', new BelongsUserGroup($userGroup), 'nullable'],
'transactions.*.category_name' => 'between:1,255|nullable', 'transactions.*.category_name' => 'min:1|max:255|nullable',
'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUserGroup($userGroup)], 'transactions.*.bill_id' => ['numeric', 'nullable', 'mustExist:bills,id', new BelongsUserGroup($userGroup)],
'transactions.*.bill_name' => ['between:1,255', 'nullable', new BelongsUserGroup($userGroup)], 'transactions.*.bill_name' => ['min:1', 'max:255', 'nullable', new BelongsUserGroup($userGroup)],
'transactions.*.piggy_bank_id' => ['numeric', 'nullable', 'mustExist:piggy_banks,id', new BelongsUserGroup($userGroup)], 'transactions.*.piggy_bank_id' => ['numeric', 'nullable', 'mustExist:piggy_banks,id', new BelongsUserGroup($userGroup)],
'transactions.*.piggy_bank_name' => ['between:1,255', 'nullable', new BelongsUserGroup($userGroup)], 'transactions.*.piggy_bank_name' => ['min:1', 'max:255', 'nullable', new BelongsUserGroup($userGroup)],
// other interesting fields // other interesting fields
'transactions.*.reconciled' => [new IsBoolean()], 'transactions.*.reconciled' => [new IsBoolean()],
'transactions.*.notes' => 'min:1|max:50000|nullable', 'transactions.*.notes' => 'min:1|max:32768|nullable',
'transactions.*.tags' => 'between:0,1024', 'transactions.*.tags' => 'min:0|max:255',
'transactions.*.tags*' => 'between:0,1024', 'transactions.*.tags.*' => 'min:0|max:255',
// meta info fields // meta info fields
'transactions.*.internal_reference' => 'min:1|max:255|nullable', 'transactions.*.internal_reference' => 'min:1|max:255|nullable',

View File

@@ -49,7 +49,7 @@ class StoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'title' => 'unique:user_groups,title|required|min:2|max:255', 'title' => 'unique:user_groups,title|required|min:1|max:255',
]; ];
} }
} }

View File

@@ -53,7 +53,7 @@ class UpdateRequest extends FormRequest
$userGroup = $this->route()->parameter('userGroup'); $userGroup = $this->route()->parameter('userGroup');
return [ return [
'title' => sprintf('required|min:2|max:255|unique:user_groups,title,%d', $userGroup->id), 'title' => sprintf('required|min:1|max:255|unique:user_groups,title,%d', $userGroup->id),
]; ];
} }
} }

View File

@@ -108,7 +108,7 @@ class AccountFormRequest extends FormRequest
'BIC' => 'bic|nullable', 'BIC' => 'bic|nullable',
'virtual_balance' => ['nullable', new IsValidAmount()], 'virtual_balance' => ['nullable', new IsValidAmount()],
'currency_id' => 'exists:transaction_currencies,id', 'currency_id' => 'exists:transaction_currencies,id',
'account_number' => 'between:1,255|uniqueAccountNumberForUser|nullable', 'account_number' => 'min:1|max:255|uniqueAccountNumberForUser|nullable',
'account_role' => 'in:'.$accountRoles, 'account_role' => 'in:'.$accountRoles,
'active' => 'boolean', 'active' => 'boolean',
'cc_type' => 'in:'.$ccPaymentTypes, 'cc_type' => 'in:'.$ccPaymentTypes,

View File

@@ -53,7 +53,7 @@ class AttachmentFormRequest extends FormRequest
{ {
// fixed // fixed
return [ return [
'title' => 'between:1,255|nullable', 'title' => 'min:1|max:255|nullable',
'notes' => 'min:1|max:32768|nullable', 'notes' => 'min:1|max:32768|nullable',
]; ];
} }

View File

@@ -64,7 +64,7 @@ class BillStoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,255|uniqueObjectForUser:bills,name', 'name' => 'required|min:1|max:255|uniqueObjectForUser:bills,name',
'amount_min' => ['required', new IsValidPositiveAmount()], 'amount_min' => ['required', new IsValidPositiveAmount()],
'amount_max' => ['required', new IsValidPositiveAmount()], 'amount_max' => ['required', new IsValidPositiveAmount()],
'transaction_currency_id' => 'required|exists:transaction_currencies,id', 'transaction_currency_id' => 'required|exists:transaction_currencies,id',

View File

@@ -68,7 +68,7 @@ class BillUpdateRequest extends FormRequest
$bill = $this->route()->parameter('bill'); $bill = $this->route()->parameter('bill');
return [ return [
'name' => sprintf('required|between:1,255|uniqueObjectForUser:bills,name,%d', $bill->id), 'name' => sprintf('required|min:1|max:255|uniqueObjectForUser:bills,name,%d', $bill->id),
'amount_min' => ['required', new IsValidPositiveAmount()], 'amount_min' => ['required', new IsValidPositiveAmount()],
'amount_max' => ['required', new IsValidPositiveAmount()], 'amount_max' => ['required', new IsValidPositiveAmount()],
'transaction_currency_id' => 'required|exists:transaction_currencies,id', 'transaction_currency_id' => 'required|exists:transaction_currencies,id',

View File

@@ -61,8 +61,8 @@ class BudgetFormStoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,100|uniqueObjectForUser:budgets,name', 'name' => 'required|min:1|max:255|uniqueObjectForUser:budgets,name',
'active' => 'numeric|between:0,1', 'active' => 'numeric|min:0|max:1',
'auto_budget_type' => 'numeric|integer|gte:0|lte:3', 'auto_budget_type' => 'numeric|integer|gte:0|lte:3',
'auto_budget_currency_id' => 'exists:transaction_currencies,id', 'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_amount' => ['required_if:auto_budget_type,1', 'required_if:auto_budget_type,2', new IsValidPositiveAmount()], 'auto_budget_amount' => ['required_if:auto_budget_type,1', 'required_if:auto_budget_type,2', new IsValidPositiveAmount()],

View File

@@ -60,18 +60,18 @@ class BudgetFormUpdateRequest extends FormRequest
*/ */
public function rules(): array public function rules(): array
{ {
$nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name'; $nameRule = 'required|min:1|max:255|uniqueObjectForUser:budgets,name';
/** @var null|Budget $budget */ /** @var null|Budget $budget */
$budget = $this->route()->parameter('budget'); $budget = $this->route()->parameter('budget');
if (null !== $budget) { if (null !== $budget) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name,'.$budget->id; $nameRule = 'required|min:1|max:255|uniqueObjectForUser:budgets,name,'.$budget->id;
} }
return [ return [
'name' => $nameRule, 'name' => $nameRule,
'active' => 'numeric|between:0,1', 'active' => 'numeric|min:0|max:1',
'auto_budget_type' => 'numeric|integer|gte:0|lte:31', 'auto_budget_type' => 'numeric|integer|gte:0|lte:31',
'auto_budget_currency_id' => 'exists:transaction_currencies,id', 'auto_budget_currency_id' => 'exists:transaction_currencies,id',
'auto_budget_amount' => ['required_if:auto_budget_type,1', 'required_if:auto_budget_type,2|numeric', new IsValidPositiveAmount()], 'auto_budget_amount' => ['required_if:auto_budget_type,1', 'required_if:auto_budget_type,2|numeric', new IsValidPositiveAmount()],

View File

@@ -52,13 +52,13 @@ class CategoryFormRequest extends FormRequest
*/ */
public function rules(): array public function rules(): array
{ {
$nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name'; $nameRule = 'required|min:1|max:255|uniqueObjectForUser:categories,name';
/** @var null|Category $category */ /** @var null|Category $category */
$category = $this->route()->parameter('category'); $category = $this->route()->parameter('category');
if (null !== $category) { if (null !== $category) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name,'.$category->id; $nameRule = 'required|min:1|max:255|uniqueObjectForUser:categories,name,'.$category->id;
} }
// fixed // fixed

View File

@@ -51,8 +51,8 @@ class ConfigurationRequest extends FormRequest
{ {
// fixed // fixed
return [ return [
'single_user_mode' => 'between:0,1|numeric', 'single_user_mode' => 'min:0|max:1|numeric',
'is_demo_site' => 'between:0,1|numeric', 'is_demo_site' => 'min:0|max:1|numeric',
]; ];
} }
} }

View File

@@ -43,7 +43,7 @@ class NewUserFormRequest extends FormRequest
{ {
// fixed // fixed
return [ return [
'bank_name' => 'required|between:1,200', 'bank_name' => 'required|min:1|max:255',
'bank_balance' => ['required', new IsValidAmount()], 'bank_balance' => ['required', new IsValidAmount()],
'savings_balance' => ['nullable', new IsValidAmount()], 'savings_balance' => ['nullable', new IsValidAmount()],
'credit_card_limit' => ['nullable', new IsValidAmount()], 'credit_card_limit' => ['nullable', new IsValidAmount()],

View File

@@ -53,10 +53,10 @@ class ObjectGroupFormRequest extends FormRequest
{ {
/** @var null|ObjectGroup $objectGroup */ /** @var null|ObjectGroup $objectGroup */
$objectGroup = $this->route()->parameter('objectGroup'); $objectGroup = $this->route()->parameter('objectGroup');
$titleRule = 'required|between:1,255|uniqueObjectGroup'; $titleRule = 'required|min:1|max:255|uniqueObjectGroup';
if (null !== $objectGroup) { if (null !== $objectGroup) {
$titleRule = sprintf('required|between:1,255|uniqueObjectGroup:%d', $objectGroup->id); $titleRule = sprintf('required|min:1|max:255|uniqueObjectGroup:%d', $objectGroup->id);
} }
return [ return [

View File

@@ -58,7 +58,7 @@ class PiggyBankStoreRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'name' => 'required|between:1,255|uniquePiggyBankForUser', 'name' => 'required|min:1|max:255|uniquePiggyBankForUser',
'account_id' => 'required|belongsToUser:accounts', 'account_id' => 'required|belongsToUser:accounts',
'targetamount' => ['nullable', new IsValidPositiveAmount()], 'targetamount' => ['nullable', new IsValidPositiveAmount()],
'startdate' => 'date', 'startdate' => 'date',

View File

@@ -62,7 +62,7 @@ class PiggyBankUpdateRequest extends FormRequest
$piggy = $this->route()->parameter('piggyBank'); $piggy = $this->route()->parameter('piggyBank');
return [ return [
'name' => sprintf('required|between:1,255|uniquePiggyBankForUser:%d', $piggy->id), 'name' => sprintf('required|min:1|max:255|uniquePiggyBankForUser:%d', $piggy->id),
'account_id' => 'required|belongsToUser:accounts', 'account_id' => 'required|belongsToUser:accounts',
'targetamount' => ['nullable', new IsValidPositiveAmount()], 'targetamount' => ['nullable', new IsValidPositiveAmount()],
'startdate' => 'date', 'startdate' => 'date',

View File

@@ -159,26 +159,26 @@ class RecurrenceFormRequest extends FormRequest
$before = today(config('app.timezone'))->addYears(25); $before = today(config('app.timezone'))->addYears(25);
$rules = [ $rules = [
// mandatory info for recurrence. // mandatory info for recurrence.
'title' => 'required|between:1,255|uniqueObjectForUser:recurrences,title', 'title' => 'required|min:1|max:255|uniqueObjectForUser:recurrences,title',
'first_date' => sprintf('required|date|before:%s|after:%s', $before->format('Y-m-d'), $today->format('Y-m-d')), 'first_date' => sprintf('required|date|before:%s|after:%s', $before->format('Y-m-d'), $today->format('Y-m-d')),
'repetition_type' => ['required', new ValidRecurrenceRepetitionValue(), new ValidRecurrenceRepetitionType(), 'between:1,20'], 'repetition_type' => ['required', new ValidRecurrenceRepetitionValue(), new ValidRecurrenceRepetitionType(), 'min:1', 'max:32'],
'skip' => 'required|numeric|integer|gte:0|lte:31', 'skip' => 'required|numeric|integer|gte:0|lte:31',
'notes' => 'min:1|max:32768|nullable', 'notes' => 'min:1|max:32768|nullable',
// optional for recurrence: // optional for recurrence:
'recurring_description' => 'between:0,65000', 'recurring_description' => 'min:0|max:32768',
'active' => 'numeric|between:0,1', 'active' => 'numeric|min:0|max:1',
'apply_rules' => 'numeric|between:0,1', 'apply_rules' => 'numeric|min:0|max:1',
// mandatory for transaction: // mandatory for transaction:
'transaction_description' => 'required|between:1,255', 'transaction_description' => 'required|min:1|max:255',
'transaction_type' => 'required|in:withdrawal,deposit,transfer', 'transaction_type' => 'required|in:withdrawal,deposit,transfer',
'transaction_currency_id' => 'required|exists:transaction_currencies,id', 'transaction_currency_id' => 'required|exists:transaction_currencies,id',
'amount' => ['required', new IsValidPositiveAmount()], 'amount' => ['required', new IsValidPositiveAmount()],
// mandatory account info: // mandatory account info:
'source_id' => 'numeric|belongsToUser:accounts,id|nullable', 'source_id' => 'numeric|belongsToUser:accounts,id|nullable',
'source_name' => 'between:1,255|nullable', 'source_name' => 'min:1|max:255|nullable',
'destination_id' => 'numeric|belongsToUser:accounts,id|nullable', 'destination_id' => 'numeric|belongsToUser:accounts,id|nullable',
'destination_name' => 'between:1,255|nullable', 'destination_name' => 'min:1|max:255|nullable',
// foreign amount data: // foreign amount data:
'foreign_amount' => ['nullable', new IsValidPositiveAmount()], 'foreign_amount' => ['nullable', new IsValidPositiveAmount()],
@@ -186,8 +186,8 @@ class RecurrenceFormRequest extends FormRequest
// optional fields: // optional fields:
'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable', 'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable',
'bill_id' => 'mustExist:bills,id|belongsToUser:bills,id|nullable', 'bill_id' => 'mustExist:bills,id|belongsToUser:bills,id|nullable',
'category' => 'between:1,255|nullable', 'category' => 'min:1|max:255|nullable',
'tags' => 'between:1,255|nullable', 'tags' => 'min:1|max:255|nullable',
]; ];
if ($this->convertInteger('foreign_currency_id') > 0) { if ($this->convertInteger('foreign_currency_id') > 0) {
$rules['foreign_currency_id'] = 'exists:transaction_currencies,id'; $rules['foreign_currency_id'] = 'exists:transaction_currencies,id';
@@ -195,7 +195,7 @@ class RecurrenceFormRequest extends FormRequest
// if ends after X repetitions, set another rule // if ends after X repetitions, set another rule
if ('times' === $this->convertString('repetition_end')) { if ('times' === $this->convertString('repetition_end')) {
$rules['repetitions'] = 'required|numeric|between:0,254'; $rules['repetitions'] = 'required|numeric|min:0|max:255';
} }
// if foreign amount, currency must be different. // if foreign amount, currency must be different.
if (null !== $this->convertFloat('foreign_amount')) { // intentional float, used because it defaults to null. if (null !== $this->convertFloat('foreign_amount')) { // intentional float, used because it defaults to null.
@@ -211,10 +211,10 @@ class RecurrenceFormRequest extends FormRequest
$type = strtolower($this->convertString('transaction_type')); $type = strtolower($this->convertString('transaction_type'));
if (strtolower(TransactionType::WITHDRAWAL) === $type) { if (strtolower(TransactionType::WITHDRAWAL) === $type) {
$rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts'; $rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
$rules['destination_name'] = 'between:1,255|nullable'; $rules['destination_name'] = 'min:1|max:255|nullable';
} }
if (strtolower(TransactionType::DEPOSIT) === $type) { if (strtolower(TransactionType::DEPOSIT) === $type) {
$rules['source_name'] = 'between:1,255|nullable'; $rules['source_name'] = 'min:1|max:255|nullable';
$rules['destination_id'] = 'required|exists:accounts,id|belongsToUser:accounts'; $rules['destination_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
} }
if (strtolower(TransactionType::TRANSFER) === $type) { if (strtolower(TransactionType::TRANSFER) === $type) {
@@ -228,7 +228,7 @@ class RecurrenceFormRequest extends FormRequest
$recurrence = $this->route()->parameter('recurrence'); $recurrence = $this->route()->parameter('recurrence');
if ($recurrence instanceof Recurrence) { if ($recurrence instanceof Recurrence) {
$rules['id'] = 'required|numeric|exists:recurrences,id'; $rules['id'] = 'required|numeric|exists:recurrences,id';
$rules['title'] = 'required|between:1,255|uniqueObjectForUser:recurrences,title,'.$recurrence->id; $rules['title'] = 'required|min:1|max:255|uniqueObjectForUser:recurrences,title,'.$recurrence->id;
$rules['first_date'] = 'required|date'; $rules['first_date'] = 'required|date';
} }

View File

@@ -97,8 +97,8 @@ class RuleFormRequest extends FormRequest
// initial set of rules: // initial set of rules:
$rules = [ $rules = [
'title' => 'required|between:1,100|uniqueObjectForUser:rules,title', 'title' => 'required|min:1|max:255|uniqueObjectForUser:rules,title',
'description' => 'between:1,5000|nullable', 'description' => 'min:1|max:32768|nullable',
'stop_processing' => 'boolean', 'stop_processing' => 'boolean',
'rule_group_id' => 'required|belongsToUser:rule_groups', 'rule_group_id' => 'required|belongsToUser:rule_groups',
'trigger' => 'required|in:store-journal,update-journal', 'trigger' => 'required|in:store-journal,update-journal',
@@ -113,7 +113,7 @@ class RuleFormRequest extends FormRequest
$rule = $this->route()->parameter('rule'); $rule = $this->route()->parameter('rule');
if (null !== $rule) { if (null !== $rule) {
$rules['title'] = 'required|between:1,100|uniqueObjectForUser:rules,title,'.$rule->id; $rules['title'] = 'required|min:1|max:255|uniqueObjectForUser:rules,title,'.$rule->id;
} }
return $rules; return $rules;

View File

@@ -59,18 +59,18 @@ class RuleGroupFormRequest extends FormRequest
*/ */
public function rules(): array public function rules(): array
{ {
$titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title'; $titleRule = 'required|min:1|max:255|uniqueObjectForUser:rule_groups,title';
/** @var null|RuleGroup $ruleGroup */ /** @var null|RuleGroup $ruleGroup */
$ruleGroup = $this->route()->parameter('ruleGroup'); $ruleGroup = $this->route()->parameter('ruleGroup');
if (null !== $ruleGroup) { if (null !== $ruleGroup) {
$titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title,'.$ruleGroup->id; $titleRule = 'required|min:1|max:255|uniqueObjectForUser:rule_groups,title,'.$ruleGroup->id;
} }
return [ return [
'title' => $titleRule, 'title' => $titleRule,
'description' => 'between:1,5000|nullable', 'description' => 'min:1|max:32768|nullable',
'active' => [new IsBoolean()], 'active' => [new IsBoolean()],
]; ];
} }

View File

@@ -58,9 +58,9 @@ class UserFormRequest extends FormRequest
'id' => 'required|exists:users,id', 'id' => 'required|exists:users,id',
'email' => 'email|required', 'email' => 'email|required',
'password' => 'confirmed|secure_password', 'password' => 'confirmed|secure_password',
'blocked_code' => 'between:0,30|nullable', 'blocked_code' => 'min:0|max:32|nullable',
'blocked' => 'between:0,1|numeric', 'blocked' => 'min:0|max:1|numeric',
'is_owner' => 'between:0,1|numeric', 'is_owner' => 'min:0|max:1|numeric',
]; ];
} }
} }