From 262f8a33c6ca0ab1c5077d67e3a8275477edc985 Mon Sep 17 00:00:00 2001 From: James Cole Date: Tue, 12 Sep 2017 21:44:31 +0200 Subject: [PATCH] Fixed validation rules. --- .../Controllers/Auth/RegisterController.php | 2 -- app/Http/Requests/AccountFormRequest.php | 12 +++---- app/Http/Requests/AttachmentFormRequest.php | 2 +- app/Http/Requests/BillFormRequest.php | 2 +- app/Http/Requests/BudgetFormRequest.php | 1 + app/Http/Requests/BudgetIncomeRequest.php | 1 + app/Http/Requests/CategoryFormRequest.php | 2 +- app/Http/Requests/ConfigurationRequest.php | 1 + app/Http/Requests/CurrencyFormRequest.php | 2 +- .../Requests/DeleteAccountFormRequest.php | 1 + app/Http/Requests/ExportFormRequest.php | 2 ++ app/Http/Requests/ImportUploadRequest.php | 1 + app/Http/Requests/JournalFormRequest.php | 34 +++++++++---------- app/Http/Requests/JournalLinkRequest.php | 2 +- app/Http/Requests/LinkTypeFormRequest.php | 2 ++ .../Requests/MassDeleteJournalRequest.php | 1 + app/Http/Requests/MassEditJournalRequest.php | 2 ++ app/Http/Requests/NewUserFormRequest.php | 1 + app/Http/Requests/PiggyBankFormRequest.php | 3 +- app/Http/Requests/ProfileFormRequest.php | 1 + app/Http/Requests/ReportFormRequest.php | 1 + app/Http/Requests/RuleFormRequest.php | 2 +- app/Http/Requests/RuleGroupFormRequest.php | 1 + .../Requests/SelectTransactionsRequest.php | 6 ++-- app/Http/Requests/SplitJournalFormRequest.php | 12 +++---- app/Http/Requests/TagFormRequest.php | 10 +++--- app/Http/Requests/TestRuleFormRequest.php | 2 +- app/Http/Requests/TokenFormRequest.php | 2 +- app/Http/Requests/UserFormRequest.php | 2 +- app/Http/Requests/UserRegistrationRequest.php | 1 + 30 files changed, 64 insertions(+), 50 deletions(-) diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index e0430143b3..a54f3c4f45 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -48,7 +48,6 @@ class RegisterController extends Controller protected function validator(array $data) { return Validator::make($data, [ - 'name' => 'required|string|max:255', 'email' => 'required|string|email|max:255|unique:users', 'password' => 'required|string|min:6|confirmed', ]); @@ -63,7 +62,6 @@ class RegisterController extends Controller protected function create(array $data) { return User::create([ - 'name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), ]); diff --git a/app/Http/Requests/AccountFormRequest.php b/app/Http/Requests/AccountFormRequest.php index bf24b65418..edf5693c81 100644 --- a/app/Http/Requests/AccountFormRequest.php +++ b/app/Http/Requests/AccountFormRequest.php @@ -75,13 +75,13 @@ class AccountFormRequest extends Request return [ 'id' => $idRule, 'name' => $nameRule, - 'openingBalance' => 'numeric|required_with:openingBalanceDate', - 'openingBalanceDate' => 'date|required_with:openingBalance', - 'iban' => 'iban', - 'BIC' => 'bic', - 'virtualBalance' => 'numeric', + 'openingBalance' => 'numeric|required_with:openingBalanceDate|nullable', + 'openingBalanceDate' => 'date|required_with:openingBalance|nullable', + 'iban' => 'iban|nullable', + 'BIC' => 'bic|nullable', + 'virtualBalance' => 'numeric|nullable', 'currency_id' => 'exists:transaction_currencies,id', - 'accountNumber' => 'between:1,255|uniqueAccountNumberForUser', + 'accountNumber' => 'between:1,255|uniqueAccountNumberForUser|nullable', 'accountRole' => 'in:' . $accountRoles, 'active' => 'boolean', 'ccType' => 'in:' . $ccPaymentTypes, diff --git a/app/Http/Requests/AttachmentFormRequest.php b/app/Http/Requests/AttachmentFormRequest.php index d51a1b4a15..e5ab3f9b2c 100644 --- a/app/Http/Requests/AttachmentFormRequest.php +++ b/app/Http/Requests/AttachmentFormRequest.php @@ -47,7 +47,7 @@ class AttachmentFormRequest extends Request */ public function rules() { - + // fixed return [ 'title' => 'between:1,255|nullable', 'description' => 'between:1,65536|nullable', diff --git a/app/Http/Requests/BillFormRequest.php b/app/Http/Requests/BillFormRequest.php index 1dbe2d707b..08f270fc33 100644 --- a/app/Http/Requests/BillFormRequest.php +++ b/app/Http/Requests/BillFormRequest.php @@ -61,7 +61,7 @@ class BillFormRequest extends Request $nameRule .= ',' . intval($this->get('id')); $matchRule .= ',' . intval($this->get('id')); } - + // is OK $rules = [ 'name' => $nameRule, 'match' => $matchRule, diff --git a/app/Http/Requests/BudgetFormRequest.php b/app/Http/Requests/BudgetFormRequest.php index 5c6f1ce537..6e6aeeb039 100644 --- a/app/Http/Requests/BudgetFormRequest.php +++ b/app/Http/Requests/BudgetFormRequest.php @@ -47,6 +47,7 @@ class BudgetFormRequest extends Request */ public function rules() { + // fixed /** @var BudgetRepositoryInterface $repository */ $repository = app(BudgetRepositoryInterface::class); $nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name'; diff --git a/app/Http/Requests/BudgetIncomeRequest.php b/app/Http/Requests/BudgetIncomeRequest.php index 7f2375e3b0..b29df8781d 100644 --- a/app/Http/Requests/BudgetIncomeRequest.php +++ b/app/Http/Requests/BudgetIncomeRequest.php @@ -35,6 +35,7 @@ class BudgetIncomeRequest extends Request */ public function rules() { + // fixed return [ 'amount' => 'numeric|required|min:0', 'start' => 'required|date|before:end', diff --git a/app/Http/Requests/CategoryFormRequest.php b/app/Http/Requests/CategoryFormRequest.php index 9fb1942d20..859315727d 100644 --- a/app/Http/Requests/CategoryFormRequest.php +++ b/app/Http/Requests/CategoryFormRequest.php @@ -53,7 +53,7 @@ class CategoryFormRequest extends Request if (!is_null($repository->find(intval($this->get('id')))->id)) { $nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name,' . intval($this->get('id')); } - + // fixed return [ 'name' => $nameRule, ]; diff --git a/app/Http/Requests/ConfigurationRequest.php b/app/Http/Requests/ConfigurationRequest.php index 15cfe56a43..214839f6ca 100644 --- a/app/Http/Requests/ConfigurationRequest.php +++ b/app/Http/Requests/ConfigurationRequest.php @@ -46,6 +46,7 @@ class ConfigurationRequest extends Request */ public function rules() { + // fixed $rules = [ 'single_user_mode' => 'between:0,1|numeric', 'is_demo_site' => 'between:0,1|numeric', diff --git a/app/Http/Requests/CurrencyFormRequest.php b/app/Http/Requests/CurrencyFormRequest.php index 6a779665e5..2bb64be03f 100644 --- a/app/Http/Requests/CurrencyFormRequest.php +++ b/app/Http/Requests/CurrencyFormRequest.php @@ -48,7 +48,7 @@ class CurrencyFormRequest extends Request */ public function rules() { - + // fixed $rules = [ 'name' => 'required|max:48|min:1|unique:transaction_currencies,name', 'code' => 'required|min:3|max:3|unique:transaction_currencies,code', diff --git a/app/Http/Requests/DeleteAccountFormRequest.php b/app/Http/Requests/DeleteAccountFormRequest.php index b3dd484d7e..6cf51a3e25 100644 --- a/app/Http/Requests/DeleteAccountFormRequest.php +++ b/app/Http/Requests/DeleteAccountFormRequest.php @@ -35,6 +35,7 @@ class DeleteAccountFormRequest extends Request */ public function rules() { + // fixed return [ 'password' => 'required', ]; diff --git a/app/Http/Requests/ExportFormRequest.php b/app/Http/Requests/ExportFormRequest.php index 7b02ec5520..61e3c16171 100644 --- a/app/Http/Requests/ExportFormRequest.php +++ b/app/Http/Requests/ExportFormRequest.php @@ -42,6 +42,8 @@ class ExportFormRequest extends Request $today = Carbon::create()->addDay()->format('Y-m-d'); $formats = join(',', array_keys(config('firefly.export_formats'))); + // fixed + return [ 'export_start_range' => 'required|date|after:' . $first, 'export_end_range' => 'required|date|before:' . $today, diff --git a/app/Http/Requests/ImportUploadRequest.php b/app/Http/Requests/ImportUploadRequest.php index 758ee6164a..cc58773848 100644 --- a/app/Http/Requests/ImportUploadRequest.php +++ b/app/Http/Requests/ImportUploadRequest.php @@ -35,6 +35,7 @@ class ImportUploadRequest extends Request */ public function rules() { + // fixed $types = array_keys(config('firefly.import_formats')); return [ diff --git a/app/Http/Requests/JournalFormRequest.php b/app/Http/Requests/JournalFormRequest.php index aeadae21a6..bf01081db3 100644 --- a/app/Http/Requests/JournalFormRequest.php +++ b/app/Http/Requests/JournalFormRequest.php @@ -88,24 +88,24 @@ class JournalFormRequest extends Request 'date' => 'required|date', // then, custom fields: - 'interest_date' => 'date', - 'book_date' => 'date', - 'process_date' => 'date', - 'due_date' => 'date', - 'payment_date' => 'date', - 'invoice_date' => 'date', - 'internal_reference' => 'min:1,max:255', - 'notes' => 'min:1,max:50000', + 'interest_date' => 'date|nullable', + 'book_date' => 'date|nullable', + 'process_date' => 'date|nullable', + 'due_date' => 'date|nullable', + 'payment_date' => 'date|nullable', + 'invoice_date' => 'date|nullable', + 'internal_reference' => 'min:1,max:255|nullable', + 'notes' => 'min:1,max:50000|nullable', // and then transaction rules: 'description' => 'required|between:1,255', 'amount' => 'numeric|required|more:0', - 'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id', - 'category' => 'between:1,255', - 'source_account_id' => 'numeric|belongsToUser:accounts,id', - 'source_account_name' => 'between:1,255', - 'destination_account_id' => 'numeric|belongsToUser:accounts,id', - 'destination_account_name' => 'between:1,255', - 'piggy_bank_id' => 'between:1,255', + 'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable', + 'category' => 'between:1,255|nullable', + 'source_account_id' => 'numeric|belongsToUser:accounts,id|nullable', + 'source_account_name' => 'between:1,255|nullable', + 'destination_account_id' => 'numeric|belongsToUser:accounts,id|nullable', + 'destination_account_name' => 'between:1,255|nullable', + 'piggy_bank_id' => 'between:1,255|nullable', // foreign currency amounts 'native_amount' => 'numeric|more:0|nullable', @@ -133,10 +133,10 @@ class JournalFormRequest extends Request switch ($what) { case strtolower(TransactionType::WITHDRAWAL): $rules['source_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts'; - $rules['destination_account_name'] = 'between:1,255'; + $rules['destination_account_name'] = 'between:1,255|nullable'; break; case strtolower(TransactionType::DEPOSIT): - $rules['source_account_name'] = 'between:1,255'; + $rules['source_account_name'] = 'between:1,255|nullable'; $rules['destination_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts'; break; case strtolower(TransactionType::TRANSFER): diff --git a/app/Http/Requests/JournalLinkRequest.php b/app/Http/Requests/JournalLinkRequest.php index 50b2069d47..e0082eaf0e 100644 --- a/app/Http/Requests/JournalLinkRequest.php +++ b/app/Http/Requests/JournalLinkRequest.php @@ -64,7 +64,7 @@ class JournalLinkRequest extends Request $combinations[] = sprintf('%d_outward', $type->id); } $string = join(',', $combinations); - + // fixed return [ 'link_type' => sprintf('required|in:%s', $string), 'link_other' => 'belongsToUser:transaction_journals', diff --git a/app/Http/Requests/LinkTypeFormRequest.php b/app/Http/Requests/LinkTypeFormRequest.php index 625e40d0d5..7bc9d267bd 100644 --- a/app/Http/Requests/LinkTypeFormRequest.php +++ b/app/Http/Requests/LinkTypeFormRequest.php @@ -36,6 +36,8 @@ class LinkTypeFormRequest extends Request */ public function rules() { + // fixed + /** @var LinkTypeRepositoryInterface $repository */ $repository = app(LinkTypeRepositoryInterface::class); $nameRule = 'required|min:1|unique:link_types,name'; diff --git a/app/Http/Requests/MassDeleteJournalRequest.php b/app/Http/Requests/MassDeleteJournalRequest.php index 004f4aa4ed..b8755ae186 100644 --- a/app/Http/Requests/MassDeleteJournalRequest.php +++ b/app/Http/Requests/MassDeleteJournalRequest.php @@ -35,6 +35,7 @@ class MassDeleteJournalRequest extends Request */ public function rules() { + // fixed return [ 'confirm_mass_delete.*' => 'required|belongsToUser:transaction_journals,id', ]; diff --git a/app/Http/Requests/MassEditJournalRequest.php b/app/Http/Requests/MassEditJournalRequest.php index 7067d34e05..008a03aeb9 100644 --- a/app/Http/Requests/MassEditJournalRequest.php +++ b/app/Http/Requests/MassEditJournalRequest.php @@ -35,6 +35,8 @@ class MassEditJournalRequest extends Request */ public function rules() { + // fixed + return [ 'description.*' => 'required|min:1,max:255', 'source_account_id.*' => 'numeric|belongsToUser:accounts,id', diff --git a/app/Http/Requests/NewUserFormRequest.php b/app/Http/Requests/NewUserFormRequest.php index b5ef0fd040..0beb467f8f 100644 --- a/app/Http/Requests/NewUserFormRequest.php +++ b/app/Http/Requests/NewUserFormRequest.php @@ -35,6 +35,7 @@ class NewUserFormRequest extends Request */ public function rules() { + // fixed return [ 'bank_name' => 'required|between:1,200', 'bank_balance' => 'required|numeric', diff --git a/app/Http/Requests/PiggyBankFormRequest.php b/app/Http/Requests/PiggyBankFormRequest.php index c2d9f7f9e5..3be864344c 100644 --- a/app/Http/Requests/PiggyBankFormRequest.php +++ b/app/Http/Requests/PiggyBankFormRequest.php @@ -54,7 +54,6 @@ class PiggyBankFormRequest extends Request { $nameRule = 'required|between:1,255|uniquePiggyBankForUser'; - $targetDateRule = 'date'; if (intval($this->get('id'))) { $nameRule = 'required|between:1,255|uniquePiggyBankForUser:' . intval($this->get('id')); } @@ -66,7 +65,7 @@ class PiggyBankFormRequest extends Request 'targetamount' => 'required|numeric|more:0', 'amount_currency_id_targetamount' => 'required|exists:transaction_currencies,id', 'startdate' => 'date', - 'targetdate' => $targetDateRule, + 'targetdate' => 'date|nullable', 'order' => 'integer|min:1', ]; diff --git a/app/Http/Requests/ProfileFormRequest.php b/app/Http/Requests/ProfileFormRequest.php index 3310897272..d5707e9ab9 100644 --- a/app/Http/Requests/ProfileFormRequest.php +++ b/app/Http/Requests/ProfileFormRequest.php @@ -35,6 +35,7 @@ class ProfileFormRequest extends Request */ public function rules() { + // fixed return [ 'current_password' => 'required', 'new_password' => 'required|confirmed|secure_password', diff --git a/app/Http/Requests/ReportFormRequest.php b/app/Http/Requests/ReportFormRequest.php index db8b5fbe74..94788699a6 100644 --- a/app/Http/Requests/ReportFormRequest.php +++ b/app/Http/Requests/ReportFormRequest.php @@ -44,6 +44,7 @@ class ReportFormRequest extends Request */ public function getAccountList(): Collection { + // fixed /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); $set = $this->get('accounts'); diff --git a/app/Http/Requests/RuleFormRequest.php b/app/Http/Requests/RuleFormRequest.php index d2a965ca6d..bc4338ded6 100644 --- a/app/Http/Requests/RuleFormRequest.php +++ b/app/Http/Requests/RuleFormRequest.php @@ -72,7 +72,7 @@ class RuleFormRequest extends Request } $rules = [ 'title' => $titleRule, - 'description' => 'between:1,5000', + 'description' => 'between:1,5000|nullable', 'stop_processing' => 'boolean', 'rule_group_id' => 'required|belongsToUser:rule_groups', 'trigger' => 'required|in:store-journal,update-journal', diff --git a/app/Http/Requests/RuleGroupFormRequest.php b/app/Http/Requests/RuleGroupFormRequest.php index 952025c558..22a6224d8b 100644 --- a/app/Http/Requests/RuleGroupFormRequest.php +++ b/app/Http/Requests/RuleGroupFormRequest.php @@ -48,6 +48,7 @@ class RuleGroupFormRequest extends Request */ public function rules() { + // fixed /** @var RuleGroupRepositoryInterface $repository */ $repository = app(RuleGroupRepositoryInterface::class); $titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title'; diff --git a/app/Http/Requests/SelectTransactionsRequest.php b/app/Http/Requests/SelectTransactionsRequest.php index 5b85dd3b26..98ee89afeb 100644 --- a/app/Http/Requests/SelectTransactionsRequest.php +++ b/app/Http/Requests/SelectTransactionsRequest.php @@ -37,10 +37,10 @@ class SelectTransactionsRequest extends Request */ public function rules() { + // fixed $sessionFirst = clone session('first'); - - $first = $sessionFirst->subDay()->format('Y-m-d'); - $today = Carbon::create()->addDay()->format('Y-m-d'); + $first = $sessionFirst->subDay()->format('Y-m-d'); + $today = Carbon::create()->addDay()->format('Y-m-d'); return [ 'start_date' => 'required|date|after:' . $first, diff --git a/app/Http/Requests/SplitJournalFormRequest.php b/app/Http/Requests/SplitJournalFormRequest.php index 1a2f0defa3..c1f63f357e 100644 --- a/app/Http/Requests/SplitJournalFormRequest.php +++ b/app/Http/Requests/SplitJournalFormRequest.php @@ -68,16 +68,16 @@ class SplitJournalFormRequest extends Request 'journal_source_account_name.*' => 'between:1,255', 'journal_currency_id' => 'required|exists:transaction_currencies,id', 'date' => 'required|date', - 'interest_date' => 'date', - 'book_date' => 'date', - 'process_date' => 'date', + 'interest_date' => 'date|nullable', + 'book_date' => 'date|nullable', + 'process_date' => 'date|nullable', 'transactions.*.description' => 'required|between:1,255', 'transactions.*.destination_account_id' => 'numeric|belongsToUser:accounts,id', - 'transactions.*.destination_account_name' => 'between:1,255', + 'transactions.*.destination_account_name' => 'between:1,255|nullable', 'transactions.*.amount' => 'required|numeric', 'transactions.*.budget_id' => 'belongsToUser:budgets,id', - 'transactions.*.category' => 'between:1,255', - 'transactions.*.piggy_bank_id' => 'between:1,255', + 'transactions.*.category' => 'between:1,255|nullable', + 'transactions.*.piggy_bank_id' => 'between:1,255|nullable', ]; } diff --git a/app/Http/Requests/TagFormRequest.php b/app/Http/Requests/TagFormRequest.php index 71f1fdd796..c3ccc74ea3 100644 --- a/app/Http/Requests/TagFormRequest.php +++ b/app/Http/Requests/TagFormRequest.php @@ -77,11 +77,11 @@ class TagFormRequest extends Request return [ 'tag' => $tagRule, 'id' => $idRule, - 'description' => 'min:1', - 'date' => 'date', - 'latitude' => 'numeric|min:-90|max:90', - 'longitude' => 'numeric|min:-90|max:90', - 'zoomLevel' => 'numeric|min:0|max:80', + 'description' => 'min:1|nullable', + 'date' => 'date|nullable', + 'latitude' => 'numeric|min:-90|max:90|nullable', + 'longitude' => 'numeric|min:-90|max:90|nullable', + 'zoomLevel' => 'numeric|min:0|max:80|nullable', ]; } } diff --git a/app/Http/Requests/TestRuleFormRequest.php b/app/Http/Requests/TestRuleFormRequest.php index c2d3bd8c61..5fc20c0c2c 100644 --- a/app/Http/Requests/TestRuleFormRequest.php +++ b/app/Http/Requests/TestRuleFormRequest.php @@ -35,7 +35,7 @@ class TestRuleFormRequest extends Request */ public function rules() { - + // fixed $validTriggers = array_keys(config('firefly.rule-triggers')); $rules = [ 'rule-trigger.*' => 'required|min:1|in:' . join(',', $validTriggers), diff --git a/app/Http/Requests/TokenFormRequest.php b/app/Http/Requests/TokenFormRequest.php index 8e30d3eaa7..bcef626dd7 100644 --- a/app/Http/Requests/TokenFormRequest.php +++ b/app/Http/Requests/TokenFormRequest.php @@ -35,7 +35,7 @@ class TokenFormRequest extends Request */ public function rules() { - + // fixed $rules = [ 'code' => 'required|2faCode', ]; diff --git a/app/Http/Requests/UserFormRequest.php b/app/Http/Requests/UserFormRequest.php index baba06cc63..f4cbfda5b4 100644 --- a/app/Http/Requests/UserFormRequest.php +++ b/app/Http/Requests/UserFormRequest.php @@ -52,7 +52,7 @@ class UserFormRequest extends Request 'id' => 'required|exists:users,id', 'email' => 'email|required', 'password' => 'confirmed|secure_password', - 'blocked_code' => 'between:0,30', + 'blocked_code' => 'between:0,30|nullable', 'blocked' => 'between:0,1|numeric', ]; } diff --git a/app/Http/Requests/UserRegistrationRequest.php b/app/Http/Requests/UserRegistrationRequest.php index 7875dc5358..0a41f34de8 100644 --- a/app/Http/Requests/UserRegistrationRequest.php +++ b/app/Http/Requests/UserRegistrationRequest.php @@ -33,6 +33,7 @@ class UserRegistrationRequest extends Request */ public function rules() { + // fixed return [ 'email' => 'email|required', 'password' => 'confirmed|secure_password',