mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Convest rule to validationrule
This commit is contained in:
parent
429bcf51b9
commit
3e4cf6f261
@ -11,12 +11,13 @@
|
||||
|
||||
namespace App\Http\ValidationRules\Account;
|
||||
|
||||
use Illuminate\Contracts\Validation\Rule;
|
||||
use Closure;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
|
||||
/**
|
||||
* Class BlackListRule.
|
||||
*/
|
||||
class BlackListRule implements Rule
|
||||
class BlackListRule implements ValidationRule
|
||||
{
|
||||
private array $blacklist = [
|
||||
'secure-coinspot.com',
|
||||
@ -3497,27 +3498,13 @@ class BlackListRule implements Rule
|
||||
'zzz.com',
|
||||
];
|
||||
|
||||
/**
|
||||
* @param string $attribute
|
||||
* @param mixed $value
|
||||
* @return bool
|
||||
*/
|
||||
public function passes($attribute, $value): bool
|
||||
public function validate(string $attribute, mixed $value, Closure $fail): void
|
||||
{
|
||||
$parts = explode("@", $value);
|
||||
|
||||
if (is_array($parts)) {
|
||||
return ! in_array($parts[1], $this->blacklist);
|
||||
} else {
|
||||
return true;
|
||||
if (is_array($parts) && in_array($parts[1], $this->blacklist)) {
|
||||
$fail('This domain is blacklisted, if you think this is in error, please email contact@invoiceninja.com');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*/
|
||||
public function message(): string
|
||||
{
|
||||
return 'This domain is blacklisted, if you think this is in error, please email contact@invoiceninja.com';
|
||||
}
|
||||
}
|
||||
|
@ -52,4 +52,32 @@ class BlacklistValidationTest extends TestCase
|
||||
$v = $this->app['validator']->make($data, $rules);
|
||||
$this->assertFalse($v->passes());
|
||||
}
|
||||
|
||||
public function testInValidEmailRule2()
|
||||
{
|
||||
$rules = [
|
||||
'email' => [new BlackListRule],
|
||||
];
|
||||
|
||||
$data = [
|
||||
'email' => 'jimmy@zzz.com',
|
||||
];
|
||||
|
||||
$v = $this->app['validator']->make($data, $rules);
|
||||
$this->assertFalse($v->passes());
|
||||
}
|
||||
|
||||
public function testInValidEmailRule3()
|
||||
{
|
||||
$rules = [
|
||||
'email' => [new BlackListRule],
|
||||
];
|
||||
|
||||
$data = [
|
||||
'email' => 'jimmy@gmail.com',
|
||||
];
|
||||
|
||||
$v = $this->app['validator']->make($data, $rules);
|
||||
$this->assertTrue($v->passes());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user