Skip to content

Commit

Permalink
Fixed issue #CR-1253: There is no validation on admin email, bounce e…
Browse files Browse the repository at this point in the history
…mail in general survey settings (#3331)

* Fixed issue CR-1253: admin and bounce email validation

* Revert "Fixed issue CR-1253: admin and bounce email validation"

This reverts commit 7fc326a.

* Fixed issue #CR-1253: Adjust LSYii_FilterValidator to only allow emails

* Fixed issue #CR-1253: Fix bounce_email rule syntax
  • Loading branch information
mohabmes committed Aug 10, 2023
1 parent bba1a66 commit 1e39019
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 2 deletions.
17 changes: 17 additions & 0 deletions application/core/LSYii_FilterValidator.php
Expand Up @@ -27,6 +27,7 @@ class LSYii_FilterValidator extends CFilterValidator
* is null or an empty string.
*/
public $skipOnEmpty = false;
public $allowOnlyEmail = false;

/**
* @inheritdoc
Expand All @@ -36,6 +37,22 @@ protected function validateAttribute($object, $attribute)
if ($this->skipOnEmpty && empty($object->$attribute)) {
return;
}

if (!empty($object->$attribute)) {
if ($object->$attribute == 'inherit') {
return;
}
elseif ($this->allowOnlyEmail) {
$emailRegex = '/^([a-zA-Z0-9.!#$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+))(,([a-zA-Z0-9.!#$%&’*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)))*$/';
$isValid = preg_match($emailRegex, (string) $object->$attribute);
if (!$isValid)
{
Yii::app()->setFlashMessage(gT("Invalid email address."), 'error');
Yii::app()->end();
}
}
}

return parent::validateAttribute($object, $attribute);
}
}
4 changes: 2 additions & 2 deletions application/models/Survey.php
Expand Up @@ -496,8 +496,8 @@ public function rules()
array('expires', 'default', 'value' => null),
array('admin', 'LSYii_Validators'),
array('admin', 'length', 'min' => 1, 'max' => 50),
array('adminemail', 'LSYii_FilterValidator', 'filter' => 'trim', 'skipOnEmpty' => true),
array('bounce_email', 'LSYii_FilterValidator', 'filter' => 'trim', 'skipOnEmpty' => true),
array('adminemail', 'LSYii_FilterValidator', 'filter' => 'trim', 'skipOnEmpty' => true, 'allowOnlyEmail' => true),
array('bounce_email', 'LSYii_FilterValidator', 'filter' => 'trim', 'skipOnEmpty' => true, 'allowOnlyEmail' => true),
//array('bounce_email', 'LSYii_EmailIDNAValidator', 'allowEmpty'=>true),
array('active', 'in', 'range' => array('Y', 'N'), 'allowEmpty' => true),
array('gsid', 'numerical', 'min' => '0', 'allowEmpty' => true),
Expand Down

0 comments on commit 1e39019

Please sign in to comment.