mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-03 08:41:39 +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
|
||||
*
|
||||
* @param string $email_address Email address to check
|
||||
* @param bool $restrictive
|
||||
* @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;
|
||||
$rfc = new \Egulias\EmailValidator\Validation\RFCValidation;
|
||||
if($validator->isValid($email_address, $rfc))
|
||||
|
|
|
|||
|
|
@ -405,7 +405,7 @@ class VariableBase
|
|||
{
|
||||
case 'email':
|
||||
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');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -188,7 +188,9 @@ class MailTest extends \Codeception\Test\Unit
|
|||
{
|
||||
$this->assertEquals('devops@rhymix.org', Mail::isVaildMailAddress('devops@rhymix.org'));
|
||||
$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@', false));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue