Fixed validation rules.

This commit is contained in:
James Cole 2017-09-12 21:44:31 +02:00
parent 4f934e54cf
commit 262f8a33c6
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
30 changed files with 64 additions and 50 deletions

View File

@ -48,7 +48,6 @@ class RegisterController extends Controller
protected function validator(array $data) protected function validator(array $data)
{ {
return Validator::make($data, [ return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users', 'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed', 'password' => 'required|string|min:6|confirmed',
]); ]);
@ -63,7 +62,6 @@ class RegisterController extends Controller
protected function create(array $data) protected function create(array $data)
{ {
return User::create([ return User::create([
'name' => $data['name'],
'email' => $data['email'], 'email' => $data['email'],
'password' => bcrypt($data['password']), 'password' => bcrypt($data['password']),
]); ]);

View File

@ -75,13 +75,13 @@ class AccountFormRequest extends Request
return [ return [
'id' => $idRule, 'id' => $idRule,
'name' => $nameRule, 'name' => $nameRule,
'openingBalance' => 'numeric|required_with:openingBalanceDate', 'openingBalance' => 'numeric|required_with:openingBalanceDate|nullable',
'openingBalanceDate' => 'date|required_with:openingBalance', 'openingBalanceDate' => 'date|required_with:openingBalance|nullable',
'iban' => 'iban', 'iban' => 'iban|nullable',
'BIC' => 'bic', 'BIC' => 'bic|nullable',
'virtualBalance' => 'numeric', 'virtualBalance' => 'numeric|nullable',
'currency_id' => 'exists:transaction_currencies,id', 'currency_id' => 'exists:transaction_currencies,id',
'accountNumber' => 'between:1,255|uniqueAccountNumberForUser', 'accountNumber' => 'between:1,255|uniqueAccountNumberForUser|nullable',
'accountRole' => 'in:' . $accountRoles, 'accountRole' => 'in:' . $accountRoles,
'active' => 'boolean', 'active' => 'boolean',
'ccType' => 'in:' . $ccPaymentTypes, 'ccType' => 'in:' . $ccPaymentTypes,

View File

@ -47,7 +47,7 @@ class AttachmentFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'title' => 'between:1,255|nullable', 'title' => 'between:1,255|nullable',
'description' => 'between:1,65536|nullable', 'description' => 'between:1,65536|nullable',

View File

@ -61,7 +61,7 @@ class BillFormRequest extends Request
$nameRule .= ',' . intval($this->get('id')); $nameRule .= ',' . intval($this->get('id'));
$matchRule .= ',' . intval($this->get('id')); $matchRule .= ',' . intval($this->get('id'));
} }
// is OK
$rules = [ $rules = [
'name' => $nameRule, 'name' => $nameRule,
'match' => $matchRule, 'match' => $matchRule,

View File

@ -47,6 +47,7 @@ class BudgetFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
/** @var BudgetRepositoryInterface $repository */ /** @var BudgetRepositoryInterface $repository */
$repository = app(BudgetRepositoryInterface::class); $repository = app(BudgetRepositoryInterface::class);
$nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name'; $nameRule = 'required|between:1,100|uniqueObjectForUser:budgets,name';

View File

@ -35,6 +35,7 @@ class BudgetIncomeRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'amount' => 'numeric|required|min:0', 'amount' => 'numeric|required|min:0',
'start' => 'required|date|before:end', 'start' => 'required|date|before:end',

View File

@ -53,7 +53,7 @@ class CategoryFormRequest extends Request
if (!is_null($repository->find(intval($this->get('id')))->id)) { if (!is_null($repository->find(intval($this->get('id')))->id)) {
$nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name,' . intval($this->get('id')); $nameRule = 'required|between:1,100|uniqueObjectForUser:categories,name,' . intval($this->get('id'));
} }
// fixed
return [ return [
'name' => $nameRule, 'name' => $nameRule,
]; ];

View File

@ -46,6 +46,7 @@ class ConfigurationRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
$rules = [ $rules = [
'single_user_mode' => 'between:0,1|numeric', 'single_user_mode' => 'between:0,1|numeric',
'is_demo_site' => 'between:0,1|numeric', 'is_demo_site' => 'between:0,1|numeric',

View File

@ -48,7 +48,7 @@ class CurrencyFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
$rules = [ $rules = [
'name' => 'required|max:48|min:1|unique:transaction_currencies,name', 'name' => 'required|max:48|min:1|unique:transaction_currencies,name',
'code' => 'required|min:3|max:3|unique:transaction_currencies,code', 'code' => 'required|min:3|max:3|unique:transaction_currencies,code',

View File

@ -35,6 +35,7 @@ class DeleteAccountFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'password' => 'required', 'password' => 'required',
]; ];

View File

@ -42,6 +42,8 @@ class ExportFormRequest extends Request
$today = Carbon::create()->addDay()->format('Y-m-d'); $today = Carbon::create()->addDay()->format('Y-m-d');
$formats = join(',', array_keys(config('firefly.export_formats'))); $formats = join(',', array_keys(config('firefly.export_formats')));
// fixed
return [ return [
'export_start_range' => 'required|date|after:' . $first, 'export_start_range' => 'required|date|after:' . $first,
'export_end_range' => 'required|date|before:' . $today, 'export_end_range' => 'required|date|before:' . $today,

View File

@ -35,6 +35,7 @@ class ImportUploadRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
$types = array_keys(config('firefly.import_formats')); $types = array_keys(config('firefly.import_formats'));
return [ return [

View File

@ -88,24 +88,24 @@ class JournalFormRequest extends Request
'date' => 'required|date', 'date' => 'required|date',
// then, custom fields: // then, custom fields:
'interest_date' => 'date', 'interest_date' => 'date|nullable',
'book_date' => 'date', 'book_date' => 'date|nullable',
'process_date' => 'date', 'process_date' => 'date|nullable',
'due_date' => 'date', 'due_date' => 'date|nullable',
'payment_date' => 'date', 'payment_date' => 'date|nullable',
'invoice_date' => 'date', 'invoice_date' => 'date|nullable',
'internal_reference' => 'min:1,max:255', 'internal_reference' => 'min:1,max:255|nullable',
'notes' => 'min:1,max:50000', 'notes' => 'min:1,max:50000|nullable',
// and then transaction rules: // and then transaction rules:
'description' => 'required|between:1,255', 'description' => 'required|between:1,255',
'amount' => 'numeric|required|more:0', 'amount' => 'numeric|required|more:0',
'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id', 'budget_id' => 'mustExist:budgets,id|belongsToUser:budgets,id|nullable',
'category' => 'between:1,255', 'category' => 'between:1,255|nullable',
'source_account_id' => 'numeric|belongsToUser:accounts,id', 'source_account_id' => 'numeric|belongsToUser:accounts,id|nullable',
'source_account_name' => 'between:1,255', 'source_account_name' => 'between:1,255|nullable',
'destination_account_id' => 'numeric|belongsToUser:accounts,id', 'destination_account_id' => 'numeric|belongsToUser:accounts,id|nullable',
'destination_account_name' => 'between:1,255', 'destination_account_name' => 'between:1,255|nullable',
'piggy_bank_id' => 'between:1,255', 'piggy_bank_id' => 'between:1,255|nullable',
// foreign currency amounts // foreign currency amounts
'native_amount' => 'numeric|more:0|nullable', 'native_amount' => 'numeric|more:0|nullable',
@ -133,10 +133,10 @@ class JournalFormRequest extends Request
switch ($what) { switch ($what) {
case strtolower(TransactionType::WITHDRAWAL): case strtolower(TransactionType::WITHDRAWAL):
$rules['source_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts'; $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; break;
case strtolower(TransactionType::DEPOSIT): 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'; $rules['destination_account_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
break; break;
case strtolower(TransactionType::TRANSFER): case strtolower(TransactionType::TRANSFER):

View File

@ -64,7 +64,7 @@ class JournalLinkRequest extends Request
$combinations[] = sprintf('%d_outward', $type->id); $combinations[] = sprintf('%d_outward', $type->id);
} }
$string = join(',', $combinations); $string = join(',', $combinations);
// fixed
return [ return [
'link_type' => sprintf('required|in:%s', $string), 'link_type' => sprintf('required|in:%s', $string),
'link_other' => 'belongsToUser:transaction_journals', 'link_other' => 'belongsToUser:transaction_journals',

View File

@ -36,6 +36,8 @@ class LinkTypeFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
/** @var LinkTypeRepositoryInterface $repository */ /** @var LinkTypeRepositoryInterface $repository */
$repository = app(LinkTypeRepositoryInterface::class); $repository = app(LinkTypeRepositoryInterface::class);
$nameRule = 'required|min:1|unique:link_types,name'; $nameRule = 'required|min:1|unique:link_types,name';

View File

@ -35,6 +35,7 @@ class MassDeleteJournalRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'confirm_mass_delete.*' => 'required|belongsToUser:transaction_journals,id', 'confirm_mass_delete.*' => 'required|belongsToUser:transaction_journals,id',
]; ];

View File

@ -35,6 +35,8 @@ class MassEditJournalRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'description.*' => 'required|min:1,max:255', 'description.*' => 'required|min:1,max:255',
'source_account_id.*' => 'numeric|belongsToUser:accounts,id', 'source_account_id.*' => 'numeric|belongsToUser:accounts,id',

View File

@ -35,6 +35,7 @@ class NewUserFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'bank_name' => 'required|between:1,200', 'bank_name' => 'required|between:1,200',
'bank_balance' => 'required|numeric', 'bank_balance' => 'required|numeric',

View File

@ -54,7 +54,6 @@ class PiggyBankFormRequest extends Request
{ {
$nameRule = 'required|between:1,255|uniquePiggyBankForUser'; $nameRule = 'required|between:1,255|uniquePiggyBankForUser';
$targetDateRule = 'date';
if (intval($this->get('id'))) { if (intval($this->get('id'))) {
$nameRule = 'required|between:1,255|uniquePiggyBankForUser:' . 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', 'targetamount' => 'required|numeric|more:0',
'amount_currency_id_targetamount' => 'required|exists:transaction_currencies,id', 'amount_currency_id_targetamount' => 'required|exists:transaction_currencies,id',
'startdate' => 'date', 'startdate' => 'date',
'targetdate' => $targetDateRule, 'targetdate' => 'date|nullable',
'order' => 'integer|min:1', 'order' => 'integer|min:1',
]; ];

View File

@ -35,6 +35,7 @@ class ProfileFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'current_password' => 'required', 'current_password' => 'required',
'new_password' => 'required|confirmed|secure_password', 'new_password' => 'required|confirmed|secure_password',

View File

@ -44,6 +44,7 @@ class ReportFormRequest extends Request
*/ */
public function getAccountList(): Collection public function getAccountList(): Collection
{ {
// fixed
/** @var AccountRepositoryInterface $repository */ /** @var AccountRepositoryInterface $repository */
$repository = app(AccountRepositoryInterface::class); $repository = app(AccountRepositoryInterface::class);
$set = $this->get('accounts'); $set = $this->get('accounts');

View File

@ -72,7 +72,7 @@ class RuleFormRequest extends Request
} }
$rules = [ $rules = [
'title' => $titleRule, 'title' => $titleRule,
'description' => 'between:1,5000', 'description' => 'between:1,5000|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',

View File

@ -48,6 +48,7 @@ class RuleGroupFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
/** @var RuleGroupRepositoryInterface $repository */ /** @var RuleGroupRepositoryInterface $repository */
$repository = app(RuleGroupRepositoryInterface::class); $repository = app(RuleGroupRepositoryInterface::class);
$titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title'; $titleRule = 'required|between:1,100|uniqueObjectForUser:rule_groups,title';

View File

@ -37,10 +37,10 @@ class SelectTransactionsRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
$sessionFirst = clone session('first'); $sessionFirst = clone session('first');
$first = $sessionFirst->subDay()->format('Y-m-d');
$first = $sessionFirst->subDay()->format('Y-m-d'); $today = Carbon::create()->addDay()->format('Y-m-d');
$today = Carbon::create()->addDay()->format('Y-m-d');
return [ return [
'start_date' => 'required|date|after:' . $first, 'start_date' => 'required|date|after:' . $first,

View File

@ -68,16 +68,16 @@ class SplitJournalFormRequest extends Request
'journal_source_account_name.*' => 'between:1,255', 'journal_source_account_name.*' => 'between:1,255',
'journal_currency_id' => 'required|exists:transaction_currencies,id', 'journal_currency_id' => 'required|exists:transaction_currencies,id',
'date' => 'required|date', 'date' => 'required|date',
'interest_date' => 'date', 'interest_date' => 'date|nullable',
'book_date' => 'date', 'book_date' => 'date|nullable',
'process_date' => 'date', 'process_date' => 'date|nullable',
'transactions.*.description' => 'required|between:1,255', 'transactions.*.description' => 'required|between:1,255',
'transactions.*.destination_account_id' => 'numeric|belongsToUser:accounts,id', '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.*.amount' => 'required|numeric',
'transactions.*.budget_id' => 'belongsToUser:budgets,id', 'transactions.*.budget_id' => 'belongsToUser:budgets,id',
'transactions.*.category' => 'between:1,255', 'transactions.*.category' => 'between:1,255|nullable',
'transactions.*.piggy_bank_id' => 'between:1,255', 'transactions.*.piggy_bank_id' => 'between:1,255|nullable',
]; ];
} }

View File

@ -77,11 +77,11 @@ class TagFormRequest extends Request
return [ return [
'tag' => $tagRule, 'tag' => $tagRule,
'id' => $idRule, 'id' => $idRule,
'description' => 'min:1', 'description' => 'min:1|nullable',
'date' => 'date', 'date' => 'date|nullable',
'latitude' => 'numeric|min:-90|max:90', 'latitude' => 'numeric|min:-90|max:90|nullable',
'longitude' => 'numeric|min:-90|max:90', 'longitude' => 'numeric|min:-90|max:90|nullable',
'zoomLevel' => 'numeric|min:0|max:80', 'zoomLevel' => 'numeric|min:0|max:80|nullable',
]; ];
} }
} }

View File

@ -35,7 +35,7 @@ class TestRuleFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
$validTriggers = array_keys(config('firefly.rule-triggers')); $validTriggers = array_keys(config('firefly.rule-triggers'));
$rules = [ $rules = [
'rule-trigger.*' => 'required|min:1|in:' . join(',', $validTriggers), 'rule-trigger.*' => 'required|min:1|in:' . join(',', $validTriggers),

View File

@ -35,7 +35,7 @@ class TokenFormRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
$rules = [ $rules = [
'code' => 'required|2faCode', 'code' => 'required|2faCode',
]; ];

View File

@ -52,7 +52,7 @@ class UserFormRequest extends Request
'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', 'blocked_code' => 'between:0,30|nullable',
'blocked' => 'between:0,1|numeric', 'blocked' => 'between:0,1|numeric',
]; ];
} }

View File

@ -33,6 +33,7 @@ class UserRegistrationRequest extends Request
*/ */
public function rules() public function rules()
{ {
// fixed
return [ return [
'email' => 'email|required', 'email' => 'email|required',
'password' => 'confirmed|secure_password', 'password' => 'confirmed|secure_password',