Exemplo n.º 1
0
 /**
  * Determines if the email address is valid.
  *
  * @since	1.0
  * @access	public
  */
 public function isValid()
 {
     // Get ajax library.
     $ajax = FD::ajax();
     // Get the value from the query.
     $email = JRequest::getVar('email');
     // Get the user id of the profile being editted
     $userid = JRequest::getInt('userid');
     // Get the user object
     $user = FD::user($userid);
     // Check for required
     if ($this->isRequired() && empty($email)) {
         return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_REQUIRED'));
     }
     // Check against regex
     if (!empty($email) && $this->params->get('regex_validate')) {
         $format = $this->params->get('regex_format');
         $modifier = $this->params->get('regex_modifier');
         $pattern = '/' . $format . '/' . $modifier;
         $result = preg_match($pattern, $email);
         if (empty($result)) {
             return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_INVALID_FORMAT'));
         }
     }
     $valid = SocialFieldsUserJoomlaEmailHelper::isValid($email);
     // Check for email validity
     if (!$valid) {
         return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_INVALID_EMAIL'));
     }
     // Check for allowed
     if (!SocialFieldsUserJoomlaEmailHelper::isAllowed($email, $this->params)) {
         return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_DOMAIN_IS_NOT_ALLOWED'));
     }
     // Check for disallowed
     if (SocialFieldsUserJoomlaEmailHelper::isDisallowed($email, $this->params)) {
         return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_DOMAIN_IS_DISALLOWED'));
     }
     // Check for forbidden words
     if (SocialFieldsUserJoomlaEmailHelper::isForbidden($email, $this->params)) {
         return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_CONTAINS_FORBIDDEN'));
     }
     // Check for existance
     if (SocialFieldsUserJoomlaEmailHelper::exists($email, $user->email)) {
         return $ajax->reject(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_ALREADY_USED'));
     }
     return $ajax->resolve();
 }
Exemplo n.º 2
0
 /**
  * Validates the posted email
  *
  * @since	1.0
  * @access	private
  * @param	string
  * @return	bool		True if valid, false otherwise.
  */
 private function validateEmail(&$post, $currentEmail = '')
 {
     $email = !empty($post['email']) ? trim($post['email']) : '';
     $confirm = !empty($post['email-reconfirm']) ? trim($post['email-reconfirm']) : '';
     if ($this->isRequired() && empty($email)) {
         $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_REQUIRED'));
         return false;
     }
     // Check against regex
     if (!empty($email) && $this->params->get('regex_validate')) {
         $format = $this->params->get('regex_format');
         $modifier = $this->params->get('regex_modifier');
         $pattern = '/' . $format . '/' . $modifier;
         $result = preg_match($pattern, $email);
         if (empty($result)) {
             $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_INVALID_FORMAT'));
             return false;
         }
     }
     // Check for email validity
     if (!SocialFieldsUserJoomlaEmailHelper::isValid($email)) {
         $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_INVALID_EMAIL'));
         return false;
     }
     // Check for allowed domains
     if (!SocialFieldsUserJoomlaEmailHelper::isAllowed($email, $this->params)) {
         $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_DOMAIN_IS_NOT_ALLOWED'));
         return false;
     }
     // Check for disallowed domains
     if (SocialFieldsUserJoomlaEmailHelper::isDisallowed($email, $this->params)) {
         $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_DOMAIN_IS_DISALLOWED'));
         return false;
     }
     // Check for forbidden words
     if (SocialFieldsUserJoomlaEmailHelper::isForbidden($email, $this->params)) {
         $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_CONTAINS_FORBIDDEN'));
         return false;
     }
     // Check if current email exist
     if (SocialFieldsUserJoomlaEmailHelper::exists($email, $currentEmail)) {
         $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_ALREADY_USED'));
         return false;
     }
     // Check reconfirm
     if ($this->params->get('reconfirm_email')) {
         if ($email !== $currentEmail && empty($confirm)) {
             $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_RECONFIRM_REQUIRED'));
             return false;
         }
         if (!empty($confirm) && $email !== $confirm) {
             $this->setError(JText::_('PLG_FIELDS_JOOMLA_EMAIL_VALIDATION_NOT_MATCHING'));
             return false;
         }
     }
     return true;
 }