mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 09:41:40 +09:00
Fix #2313 inconsistent email validation rules
This commit is contained in:
parent
61a0cf38c3
commit
848a45cabe
3 changed files with 13 additions and 3 deletions
|
|
@ -211,10 +211,18 @@ class Mail extends Rhymix\Framework\Mail
|
||||||
* Check if param is a valid email or not
|
* Check if param is a valid email or not
|
||||||
*
|
*
|
||||||
* @param string $email_address Email address to check
|
* @param string $email_address Email address to check
|
||||||
|
* @param bool $restrictive
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public static function isVaildMailAddress($email_address)
|
public static function isVaildMailAddress($email_address, $restrictive = true)
|
||||||
{
|
{
|
||||||
|
// Restrictive mode
|
||||||
|
if ($restrictive)
|
||||||
|
{
|
||||||
|
return preg_match('/^[\w-]+((?:\.|\+|\~)[\w-]+)*@[\w-]+(\.[\w-]+)+$/', $email_address) ? $email_address : '';
|
||||||
|
}
|
||||||
|
|
||||||
|
// RFC mode
|
||||||
$validator = new \Egulias\EmailValidator\EmailValidator;
|
$validator = new \Egulias\EmailValidator\EmailValidator;
|
||||||
$rfc = new \Egulias\EmailValidator\Validation\RFCValidation;
|
$rfc = new \Egulias\EmailValidator\Validation\RFCValidation;
|
||||||
if($validator->isValid($email_address, $rfc))
|
if($validator->isValid($email_address, $rfc))
|
||||||
|
|
|
||||||
|
|
@ -405,7 +405,7 @@ class VariableBase
|
||||||
{
|
{
|
||||||
case 'email':
|
case 'email':
|
||||||
case 'email_address':
|
case 'email_address':
|
||||||
if (!preg_match('/^[\w-]+((?:\.|\+|\~)[\w-]+)*@[\w-]+(\.[\w-]+)+$/', $value))
|
if (!\Mail::isVaildMailAddress($value))
|
||||||
{
|
{
|
||||||
throw new \Rhymix\Framework\Exceptions\QueryError('Variable ' . $this->var . ' for column ' . $column . ' must contain a valid e-mail address');
|
throw new \Rhymix\Framework\Exceptions\QueryError('Variable ' . $this->var . ' for column ' . $column . ' must contain a valid e-mail address');
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -188,7 +188,9 @@ class MailTest extends \Codeception\Test\Unit
|
||||||
{
|
{
|
||||||
$this->assertEquals('devops@rhymix.org', Mail::isVaildMailAddress('devops@rhymix.org'));
|
$this->assertEquals('devops@rhymix.org', Mail::isVaildMailAddress('devops@rhymix.org'));
|
||||||
$this->assertEquals('some+thing@gmail.com', Mail::isVaildMailAddress('some+thing@gmail.com'));
|
$this->assertEquals('some+thing@gmail.com', Mail::isVaildMailAddress('some+thing@gmail.com'));
|
||||||
$this->assertEquals('weird@localhost', Mail::isVaildMailAddress('weird@localhost'));
|
$this->assertEquals('', Mail::isVaildMailAddress('weird@localhost'));
|
||||||
|
$this->assertEquals('weird@localhost', Mail::isVaildMailAddress('weird@localhost', false));
|
||||||
$this->assertEquals('', Mail::isVaildMailAddress('invalid@'));
|
$this->assertEquals('', Mail::isVaildMailAddress('invalid@'));
|
||||||
|
$this->assertEquals('', Mail::isVaildMailAddress('invalid@', false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue