mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Filter special chars.
This commit is contained in:
parent
baa3a91f65
commit
41cb256d49
@ -28,7 +28,6 @@ use FireflyIII\Exceptions\FireflyException;
|
||||
use FireflyIII\Models\Account;
|
||||
use FireflyIII\Models\AccountMeta;
|
||||
use FireflyIII\Models\AccountType;
|
||||
use FireflyIII\Models\PiggyBank;
|
||||
use FireflyIII\Models\TransactionType;
|
||||
use FireflyIII\Models\Webhook;
|
||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||
@ -43,6 +42,7 @@ use Google2FA;
|
||||
use Illuminate\Support\Collection;
|
||||
use Illuminate\Validation\Validator;
|
||||
use Log;
|
||||
use ValueError;
|
||||
use function is_string;
|
||||
|
||||
/**
|
||||
@ -114,6 +114,7 @@ class FireflyValidator extends Validator
|
||||
* @param mixed $value
|
||||
*
|
||||
* @return bool
|
||||
* @throws FireflyException
|
||||
*/
|
||||
public function validateIban($attribute, $value): bool
|
||||
{
|
||||
@ -173,6 +174,8 @@ class FireflyValidator extends Validator
|
||||
$value = str_replace($search, $replace, $value);
|
||||
$value = strtoupper($value);
|
||||
|
||||
// replace characters outside of ASCI range.
|
||||
$value = iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $value);
|
||||
$search = [' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
|
||||
$replace = ['', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31',
|
||||
'32', '33', '34', '35',];
|
||||
@ -185,7 +188,14 @@ class FireflyValidator extends Validator
|
||||
if (0 === strlen($iban)) {
|
||||
return false;
|
||||
}
|
||||
$checksum = bcmod($iban, '97');
|
||||
try {
|
||||
$checksum = bcmod($iban, '97');
|
||||
} catch (ValueError $e) {
|
||||
$message = sprintf('Could not validate IBAN check value "%s"', $iban);
|
||||
Log::error($message);
|
||||
Log::error($e->getTraceAsString());
|
||||
throw new FireflyException($message, $e);
|
||||
}
|
||||
|
||||
return 1 === (int)$checksum;
|
||||
}
|
||||
@ -471,12 +481,13 @@ class FireflyValidator extends Validator
|
||||
$ignore = (int)($parameters[0] ?? 0.0);
|
||||
$accountTypeIds = $accountTypes->pluck('id')->toArray();
|
||||
/** @var Collection $set */
|
||||
$set = auth()->user()->accounts()->whereIn('account_type_id', $accountTypeIds)->where('id', '!=', $ignore)->get();
|
||||
$set = auth()->user()->accounts()->whereIn('account_type_id', $accountTypeIds)->where('id', '!=', $ignore)->get();
|
||||
$result = $set->first(
|
||||
function (Account $account) use ($value) {
|
||||
return $account->name === $value;
|
||||
}
|
||||
);
|
||||
|
||||
return null === $result;
|
||||
|
||||
}
|
||||
@ -500,6 +511,7 @@ class FireflyValidator extends Validator
|
||||
return $account->name === $value;
|
||||
}
|
||||
);
|
||||
|
||||
return null === $result;
|
||||
}
|
||||
|
||||
@ -717,7 +729,8 @@ class FireflyValidator extends Validator
|
||||
if (null !== $exclude) {
|
||||
$query->where('piggy_banks.id', '!=', (int)$exclude);
|
||||
}
|
||||
$query->where('piggy_banks.name',$value);
|
||||
$query->where('piggy_banks.name', $value);
|
||||
|
||||
return null === $query->first(['piggy_banks.*']);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user