Пример #1
0
 /**
  * @param $request
  * @return array of validation messages
  */
 protected function validateRegisterRequest($request)
 {
     $messages = array();
     // email validations
     $emailNotEmpty = new \Zend\Validator\NotEmpty();
     $emailNotEmpty->setMessage('Email cannot be empty', \Zend\Validator\NotEmpty::IS_EMPTY);
     $emailValidEmail = new \Zend\Validator\EmailAddress();
     $emailValidEmail->setMessage('User email is not a valid email address. Use the basic format local-part@hostname', \Zend\Validator\EmailAddress::INVALID_FORMAT);
     $emailChain = new \Zend\Validator\ValidatorChain();
     $emailChain->attach($emailValidEmail);
     // is unique
     $user = $this->em()->getRepository('\\Application\\Entity\\User')->findBy(array('email' => $request['email']));
     if (count($user)) {
         $messages[] = "User with this email already exists";
     }
     // password validations
     $passwordNotEmpty = new \Zend\Validator\NotEmpty();
     $passwordNotEmpty->setMessage("User password cannot be empty", \Zend\Validator\NotEmpty::IS_EMPTY);
     $passwordStringLength = new \Zend\Validator\StringLength(['min' => 4, 'max' => 20]);
     $passwordStringLength->setMessage("User password is less than %min% characters long", \Zend\Validator\StringLength::TOO_SHORT);
     $passwordStringLength->setMessage("User password is more than %max% characters long", \Zend\Validator\StringLength::TOO_LONG);
     $passwordChain = new \Zend\Validator\ValidatorChain();
     $passwordChain->attach($passwordNotEmpty)->attach($passwordStringLength);
     if (!$passwordChain->isValid($request['password'])) {
         $messages = array_merge($messages, $passwordChain->getMessages());
     }
     if (!$emailChain->isValid($request['email'])) {
         $messages = array_merge($messages, $emailChain->getMessages());
     }
     return $messages;
 }
Пример #2
0
 public function forgotPasswordAction()
 {
     $this->layout('layout/login');
     $form = $this->getServiceLocator()->get('FormElementManager')->get('Application\\Form\\Auth\\ForgotPasswordForm');
     $message = "Please enter email address to send the temporary password to";
     $request = $this->getRequest();
     if ($request->isPost()) {
         $validator = new \Zend\Validator\EmailAddress();
         $email = $request->getPost('username');
         if ($validator->isValid($email)) {
             $newsBoy = new \Application\Model\SystemMailer();
             try {
                 $newsBoy->setEmailTo($email);
                 $newsBoy->setEmailSubject("About Reinsuing your password");
                 $newsBoy->setEmailBody("This is your tem password: sdsd4sd4s4ds4");
                 $newsBoy->sendMessage();
             } catch (\Exception $e) {
                 $this->flashMessenger()->addErrorMessage($e->getMessage());
                 $this->redirect()->toRoute('auth', array('action' => 'forgot-password'));
             }
             $message = "Thank you!  Your temporary password was sent to <b>" . $email . '</b>';
             $message .= "<br>Please check your email for further instructions...";
             $form->get('username')->setValue($email);
             $form->get('username')->setAttributes(array('disabled' => 'disabled'));
         }
     }
     return array('form' => $form, 'message' => $message);
 }
Пример #3
0
 public function checkAdministratorUserExists($email, $password)
 {
     try {
         if (empty($email)) {
             throw new Exception('NO_EMAIL');
         }
     } catch (Exception $e) {
         return $e;
     }
     try {
         if (empty($password)) {
             throw new Exception('NO_PASSWORD');
         }
     } catch (Exception $e) {
         return $e;
     }
     $validator = new \Zend\Validator\EmailAddress();
     if ($validator->isValid($email)) {
         // email appears to be valid
     } else {
         // email is invalid; print the reasons
         foreach ($validator->getMessages() as $message) {
             echo "{$message}\n";
         }
     }
 }
 /**
  * Validiert die übergebene E-Mail Adresse
  * @param string $emailaddress
  * @return Emailaddress
  * @throws \DragonJsonServer\Exception
  */
 public function validateEmailaddress($emailaddress)
 {
     $validator = new \Zend\Validator\EmailAddress();
     if (!$validator->isValid($emailaddress)) {
         throw new \DragonJsonServer\Exception('invalid emailaddress', ['emailaddress' => $emailaddress]);
     }
     return $this;
 }
Пример #5
0
 public function __construct()
 {
     $this->add(array('name' => 'nome', 'required' => true, 'filter' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Nao pode estar em branco'))))));
     $validator = new \Zend\Validator\EmailAddress();
     $validator->setOptions(array('domain' => FALSE));
     $this->add(array('name' => 'email', 'validator' => array($validator), 'class' => 'form-group'));
     $this->add(array('name' => 'password', 'required' => true, 'filter' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Nao pode estar em branco'))))));
     $this->add(array('name' => 'confirmation', 'required' => true, 'filter' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Não pode estar em braco')), 'name' => 'Identical', 'options' => array('token' => 'password')))));
 }
Пример #6
0
 public function __construct()
 {
     $this->add(array('name' => 'nome', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Não pode deixar em branco'))))));
     $validatorEmail = new \Zend\Validator\EmailAddress();
     $validatorEmail->setOptions(array('name' => 'NotEmpty', 'domain' => false, 'options' => array('messages' => array('isEmpty' => 'Não pode deixar em branco'))));
     $this->add(array('name' => 'email', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array($validatorEmail)));
     $this->add(array('name' => 'password', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Não pode deixar em branco'))))));
     $this->add(array('name' => 'confirmation', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'Identical', 'options' => array('token' => 'password')))));
 }
 protected function setEmailAddress($sEmailAddress)
 {
     $oEmailAddressValidator = new \Zend\Validator\EmailAddress();
     if ($oEmailAddressValidator->isValid($sEmailAddress)) {
         $this->email_address = $sEmailAddress;
     } else {
         $this->email_address = '';
     }
 }
Пример #8
0
 public function __construct()
 {
     $this->add(array('name' => 'nome', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor Informe o nome para cadastro'))))));
     $validator = new \Zend\Validator\EmailAddress();
     $validator->setOptions(array('domain' => FALSE));
     $this->add(array('name' => 'email', 'validators' => array($validator)));
     $this->add(array('name' => 'cpf', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor Informe o CPF para cadastro'))))));
     $this->add(array('name' => 'password', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor Informe a senha para cadastro'))))));
     $this->add(array('name' => 'confirmation ', 'required' => true, 'filters' => array(array('name' => 'StripTags'), array('name' => 'StringTrim')), 'validators' => array(array('name' => 'NotEmpty', 'options' => array('messages' => array('isEmpty' => 'Por favor confirme a senha para cadastro')), 'name' => 'Identical', 'options' => array('token' => 'password')))));
 }
Пример #9
0
 /**
  * Receives input from the user and sends an email to the recipient set in
  * the config.ini
  *
  * @return void
  */
 public function emailAction()
 {
     $category = $this->params()->fromPost('category');
     $name = $this->params()->fromPost('name');
     $users_email = $this->params()->fromPost('email');
     $comments = $this->params()->fromPost('comments');
     $url = $this->params()->fromPost('url');
     $captcha = $this->params()->fromPost('captcha');
     if (empty($captcha) || $captcha != $this->translate('feedback_captcha_answer')) {
         $view = $this->createViewModel();
         $this->flashMessenger()->addErrorMessage('feedback_captcha_error');
         return $view;
     }
     if (empty($comments)) {
         throw new \Exception('Missing data.');
     }
     $validator = new \Zend\Validator\EmailAddress();
     if (!empty($users_email) && !$validator->isValid($users_email)) {
         throw new \Exception('Email address is invalid');
     }
     // These settings are set in the feedback settion of your config.ini
     $config = $this->getServiceLocator()->get('VuFind\\Config')->get('config');
     $feedback = isset($config->Feedback) ? $config->Feedback : null;
     $recipient_email = isset($feedback->recipient_email) ? $feedback->recipient_email : null;
     $recipient_name = isset($feedback->recipient_name) ? $feedback->recipient_name : 'Your Library';
     $email_subject = isset($feedback->email_subject) ? $feedback->email_subject : 'VuFind Feedback';
     $email_subject .= ' (' . $this->translate($category) . ')';
     $sender_email = isset($feedback->sender_email) ? $feedback->sender_email : '*****@*****.**';
     $sender_name = isset($feedback->sender_name) ? $feedback->sender_name : 'VuFind Feedback';
     if ($recipient_email == null) {
         throw new \Exception('Feedback Module Error: Recipient Email Unset (see config.ini)');
     }
     $email_message = $this->translate('feedback_category') . ': ' . $this->translate($category) . "\n";
     $email_message .= $this->translate('feedback_name') . ': ' . ($name ? $name : '-') . "\n";
     $email_message .= $this->translate('feedback_email') . ': ' . ($users_email ? $users_email : '-') . "\n";
     $email_message .= $this->translate('feedback_url') . ': ' . ($url ? $url : '-') . "\n";
     $email_message .= "\n" . $this->translate('feedback_message') . ":\n";
     $email_message .= "----------\n\n{$comments}\n\n---------\n";
     // This sets up the email to be sent
     $mail = new Mail\Message();
     $mail->setEncoding('UTF-8');
     $mail->setBody($email_message);
     $mail->setFrom($sender_email, $sender_name);
     $mail->addTo($recipient_email, $recipient_name);
     $mail->setSubject($email_subject);
     $headers = $mail->getHeaders();
     $headers->removeHeader('Content-Type');
     $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8');
     $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail);
 }
Пример #10
0
 /**
  * Create record feedback form and send feedback to correct recipient.
  *
  * @return mixed
  * @throws \Exception
  */
 public function feedbackAction()
 {
     $view = $this->createViewModel();
     if ($this->formWasSubmitted('submitFeedback')) {
         $flashMsg = $this->flashMessenger();
         $message = $this->params()->fromPost('feedback_message');
         $senderEmail = $this->params()->fromPost('from');
         $validator = new \Zend\Validator\EmailAddress();
         if (!$validator->isValid($senderEmail)) {
             $flashMsg->setNamespace('error')->addMessage('Email address is invalid');
             return $view;
         }
         $driver = $this->loadRecord();
         $dataSource = $driver->getDataSource();
         $dataSources = $this->getServiceLocator()->get('VuFind\\Config')->get('datasources');
         $inst = isset($dataSources->{$dataSource}) ? $dataSources->{$dataSource} : null;
         $recipientEmail = isset($inst->feedbackEmail) ? $inst->feedbackEmail : null;
         if ($recipientEmail == null) {
             throw new \Exception('Feedback Module Error:' . 'Recipient Email Unset (see datasources.ini)');
         }
         $emailSubject = $this->translate('feedback_on_record', ['%%record%%' => $driver->getBreadcrumb()]);
         $serverUrl = $this->getRequest()->getServer('REQUEST_SCHEME');
         $serverUrl .= '://' . $this->getRequest()->getServer('HTTP_HOST');
         $emailMessage = "\n" . $this->translate('This email was sent from');
         $emailMessage .= ": " . $senderEmail . "\n";
         $emailMessage .= "------------------------------------------------------------\n";
         $emailMessage .= $this->getViewRenderer()->partial('RecordDriver/SolrDefault/result-email.phtml', ['driver' => $driver, 'info' => ['baseUrl' => $serverUrl]]);
         $emailMessage .= "------------------------------------------------------------\n";
         if (!empty($message)) {
             $emailMessage .= "\n" . $this->translate('Message From Sender') . ":\n";
             $emailMessage .= "\n" . $message . "\n\n";
         }
         // This sets up the email to be sent
         $mail = new Mail\Message();
         $mail->setEncoding('UTF-8');
         $mail->setBody($emailMessage);
         $mail->setFrom($senderEmail);
         $mail->addTo($recipientEmail);
         $mail->setSubject($emailSubject);
         $headers = $mail->getHeaders();
         $headers->removeHeader('Content-Type');
         $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8');
         $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail);
         if (!$this->inLightbox()) {
             $flashMsg->setNamespace('info')->addMessage('Thank you for your feedback');
             $this->redirectToRecord('');
         }
     }
     return $view;
 }
Пример #11
0
 public function index04Action()
 {
     echo "<h3 style='color:red;font-weight:bold'>" . __METHOD__ . "</h3>";
     $validator = new \Zend\Validator\EmailAddress();
     $input = "*****@*****.**";
     //ok
     $input = "trongle@gmail";
     //not ok
     $input = "trongle@.com";
     //not ok
     if (!$validator->isValid($input)) {
         $message = $validator->getMessages();
         echo current($message);
     } else {
         echo "ok";
     }
     return false;
 }
Пример #12
0
 /**
  * Receives input from the user and sends an email to the recipient set in
  * the config.ini
  *
  * @return void
  */
 public function emailAction()
 {
     $name = $this->params()->fromPost('name');
     $users_email = $this->params()->fromPost('email');
     $comments = $this->params()->fromPost('comments');
     if (empty($name) || empty($users_email) || empty($comments)) {
         throw new \Exception('Missing data.');
     }
     $validator = new \Zend\Validator\EmailAddress();
     if (!$validator->isValid($users_email)) {
         throw new \Exception('Email address is invalid');
     }
     // These settings are set in the feedback settion of your config.ini
     $config = $this->getServiceLocator()->get('VuFind\\Config')->get('config');
     $feedback = isset($config->Feedback) ? $config->Feedback : null;
     $recipient_email = isset($feedback->recipient_email) ? $feedback->recipient_email : null;
     $recipient_name = isset($feedback->recipient_name) ? $feedback->recipient_name : 'Your Library';
     $email_subject = isset($feedback->email_subject) ? $feedback->email_subject : 'VuFind Feedback';
     $sender_email = isset($feedback->sender_email) ? $feedback->sender_email : '*****@*****.**';
     $sender_name = isset($feedback->sender_name) ? $feedback->sender_name : 'VuFind Feedback';
     if ($recipient_email == null) {
         throw new \Exception('Feedback Module Error: Recipient Email Unset (see config.ini)');
     }
     if ($comments == "") {
         throw new \Exception('Feedback Module Error: Comment Post Failed');
     }
     $email_message = 'Name: ' . $name . "\n";
     $email_message .= 'Email: ' . $users_email . "\n";
     $email_message .= 'Comments: ' . $comments . "\n";
     // This sets up the email to be sent
     $mail = new Mail\Message();
     $mail->setBody($email_message);
     $mail->setFrom($sender_email, $sender_name);
     $mail->addTo($recipient_email, $recipient_name);
     $mail->setSubject($email_subject);
     $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail);
 }
 /**
  * Validate if the User exists, if true then validate password
  * 
  * Returns JsonModel the Contact information
  */
 private function authenticate(&$data)
 {
     // Look for username on the Contact table, might be Email or UserId.
     $ContactController = $this->getServiceLocator()->get('ContactController');
     $ContactController->setValidateOAuth(false);
     $validator = new \Zend\Validator\EmailAddress();
     if ($validator->isValid($data['id'])) {
         // email appears to be valid, Let us look for EMail
         $field = CONTACT_EMAIL;
     } else {
         // email is invalid; so look for UserId
         $field = CONTACT_USERID;
     }
     $query = array(QUERY_STRING_WHERE => "{$field}='" . $data['id'] . "'");
     $contact = $ContactController->query($query);
     if (count($contact) <= 0) {
         // User Not found on Contact table, Email or Userid
         // I have no other choice than throwing an exception
         throw new CommonException(array('messageId' => 'globals.query.record_not_found', 'parms' => array('id' => $data['id']), EXCEPTION_ERRORKEY => 404));
     } else {
         $contact = $contact[0];
     }
     /*
             if ( $contact->getVariable( EXCEPTION_ERRORKEY ) == 404 ) {
                 // User Not found on Contact table, Email or Userid
                 // I have no other choice than throwing an exception
     			throw new CommonException ( 
     			    array( 
     			        'messageId' => 'globals.query.record_not_found'
     			        ,'parms' => array( 'id' => $data[ USERNAME ] )
     			        ,EXCEPTION_ERRORKEY => 404
     			     ) 
     			 );
             }
     */
     // Now I pass the pk Id value of the contact to the UserName attribute as this is the one
     // We are going to use to search inside the Oauth_users table
     //         $data[ USERID ] = strval( $contact->getVariable( $ContactController->getTable( )->getPk( ) ) );
     $data[USERID] = strval($contact[$ContactController->getTable()->getPk()]);
     $this->getAuthService()->getAdapter()->setIdentity($data[USERID])->setCredential($data['pwd']);
     $result = $this->getAuthService()->authenticate();
     if (!$result->isValid()) {
         switch ($result->getCode()) {
             /* Possible Results
                Result::SUCCESS
                Result::FAILURE
                Result::FAILURE_IDENTITY_NOT_FOUND
                Result::FAILURE_IDENTITY_AMBIGUOUS
                Result::FAILURE_CREDENTIAL_INVALID
                Result::FAILURE_UNCATEGORIZED
                */
             case Result::FAILURE_IDENTITY_NOT_FOUND:
                 /** do stuff for nonexistent identity **/
                 // TODO - Something unusual is happening, because the Identity MUST exist
                 // on the Oauth_users table, so maybe I should send a warning to the
                 // administrator.
                 break;
             case Result::FAILURE_CREDENTIAL_INVALID:
                 /** do stuff for invalid credential **/
                 break;
             case Result::SUCCESS:
                 /** do stuff for successful authentication **/
                 break;
             default:
                 /** do stuff for other failure **/
                 break;
         }
         $messages = null;
         foreach ($result->getMessages() as $message) {
             if ($messages) {
                 $messages .= ' - ';
             }
             $messages .= $message;
         }
         throw new Exception($messages, 401);
     }
     return $contact;
 }
Пример #14
0
 public function ajaxaddbookAction()
 {
     /* @var $request \Zend\Http\Request */
     $request = $this->getRequest();
     $sl = $this->getServiceLocator();
     $valEmail = new \Zend\Validator\EmailAddress();
     $valRequired = new \Zend\Validator\NotEmpty();
     $valMobile = new \Zend\Validator\Regex("/^[0-9]+\$/");
     if (!$valRequired->isValid($request->getPost('name'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('name' => 'Họ tên không được để trống')));
     }
     if (!$valRequired->isValid($request->getPost('mobile'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('mobile' => 'Điện thoại không được để trống')));
     }
     if (!$valMobile->isValid($request->getPost('mobile'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('mobile' => 'Điện thoại không hợp lệ')));
     }
     if (!$valRequired->isValid($request->getPost('email'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('email' => 'Email không được để trống')));
     }
     if (!$valEmail->isValid($request->getPost('email'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('email' => 'Email không hợp lệ')));
     }
     if (!$valRequired->isValid($request->getPost('cityId'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('cityId' => 'Thành phố không được để trống')));
     }
     if (!$valRequired->isValid($request->getPost('districtId'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('districtId' => 'Quận huyện không được để trống')));
     }
     if (!$valRequired->isValid($request->getPost('address'))) {
         return new JsonModel(array('code' => 0, 'messages' => array('address' => 'Địa chỉ không được để trống')));
     }
     $address = new \Address\Model\Book();
     $address->exchangeArray((array) $request->getPost());
     $address->setCreatedById($this->user()->getUser()->getId());
     /* @var $addMapper \Address\Model\BookMapper */
     $addMapper = $sl->get('Address\\Model\\BookMapper');
     $addMapper->saveAddress($address);
     if ($request->getPost("id")) {
         //If this action is used to edit a book
         return new JsonModel(['code' => 0]);
     } else {
         //Get the address that was just entered to DB
         $newaddr = $addMapper->searchAddress($address)[0];
         return new JsonModel(['code' => 1, 'address' => ['id' => $newaddr->getId(), 'name' => $newaddr->getName(), 'email' => $newaddr->getEmail(), 'mobile' => $newaddr->getMobile(), 'address' => $newaddr->getAddress(), 'cityId' => $newaddr->getCityId(), 'cityName' => $newaddr->getCityName(), 'districtId' => $newaddr->getDistrictId(), 'districtName' => $newaddr->getDistrictName()]]);
     }
 }
if (!is_null($console->getOption('languages'))) {
    $languages = $console->getOption('languages');
}
$locales = array_map(function ($locale) {
    return trim($locale);
}, explode(',', $languages));
//if (isset($console->jsdir) && is_dir($console->jsdir)) {
//    $jsDir = $console->jsdir;
//} else {
//    echo "\nInvalid jsdir";
//    exit(1);
//}
$onlyCompress = isset($console->oc) ? !!$console->oc : false;
$bugsEmail = 'localhost@localdomain';
if (!is_null($console->getOption('email'))) {
    $validate = new \Zend\Validator\EmailAddress();
    if ($validate->isValid($console->getOption('email'))) {
        $bugsEmail = $console->getOption('email');
    } else {
        $console->error('Invalid email address [' . $console->getOption('email') . ']. Please define valid');
    }
}
$extensions = array('php' => array('Php'), 'phtml' => array('Phtml'), 'xml' => array('Xml'), 'json' => array('Json'));
$system = new \Zf2TranslationScanner\System();
$wordsContainer = new \Zf2TranslationScanner\WordsContainer();
/**
 * Parse project. Find All phrases for translation
 */
$console->log('Cleaning temporary files...');
$system->remove($tmpDir . '/' . $translationWordsDir);
$console->log("Starting to collect translatable strings...");
Пример #16
0
$email_test_tw = '*****@*****.**';
$smarty->assign('email_test_tw', $email_test_tw);
//  Sytem requirements test.
if ($install_step == '2') {
    $smarty->assign('mail_test_performed', 'n');
    if (isset($_POST['perform_mail_test']) && $_POST['perform_mail_test'] == 'y') {
        $email_test_to = $email_test_tw;
        $email_test_headers = '';
        $email_test_ready = true;
        if (!empty($_POST['email_test_to'])) {
            $email_test_to = $_POST['email_test_to'];
            if (isset($_POST['email_test_cc']) && $_POST['email_test_cc'] == '1') {
                $email_test_headers .= "Cc: {$email_test_tw}\n";
            }
            // check email address format
            $validator = new Zend\Validator\EmailAddress();
            if (!$validator->isValid($email_test_to)) {
                $smarty->assign('email_test_err', tra('Email address not valid, test mail not sent'));
                $email_test_ready = false;
            }
        } else {
            // no email supplied, check copy checkbox
            if (!isset($_POST['email_test_cc']) || $_POST['email_test_cc'] != '1') {
                $smarty->assign('email_test_err', tra('Email address empty and "copy" checkbox not set, test mail not sent'));
                $email_test_ready = false;
            }
        }
        $smarty->assign('email_test_to', $email_test_to);
        if ($email_test_ready) {
            // so send the mail
            $email_test_headers .= 'From: noreply@tiki.org' . "\n";
Пример #17
0
 /**
  * @param \User\Model\User $user
  * @return array
  */
 public function validateSignupInfo(\User\Model\User $user)
 {
     $error = array();
     $validateRequire = new \Zend\Validator\StringLength(array('min' => 6));
     $validateEmail = new \Zend\Validator\EmailAddress();
     $validateUsername = new \Zend\Validator\Db\NoRecordExists(array('table' => 'users', 'field' => 'username', 'adapter' => $this->getServiceLocator()->get('dbAdapter')));
     $validateUserEmail = new \Zend\Validator\Db\NoRecordExists(array('table' => 'users', 'field' => 'email', 'adapter' => $this->getServiceLocator()->get('dbAdapter')));
     if (!$validateUsername->isValid($user->getUsername())) {
         $error['username'] = self::DULICATE_USERNAME;
     }
     if (!$validateRequire->isValid($user->getUsername())) {
         $error['username'] = self::USERNAME_REQUIRED;
     }
     if (!$validateRequire->isValid($user->getPassword())) {
         $error['password'] = self::PASSWORD_REQUIRED;
     }
     if (!$validateUserEmail->isValid($user->getEmail())) {
         $error['email'] = self::DULICATE_USEREMAIL;
     }
     if (!$validateEmail->isValid($user->getEmail())) {
         $error['email'] = self::INVALID_EMAIL_FORMAT;
     }
     return $error;
 }
Пример #18
0
 /**
  * Change phone number and email from library info.
  *
  * @param type $profile patron data
  * @param type $values  form values
  *
  * @return type
  */
 protected function processLibraryDataUpdate($profile, $values)
 {
     $validator = new \Zend\Validator\EmailAddress();
     if ($validator->isValid($values->profile_email)) {
         // ToDo: Save mail
     }
     // ToDo: Save phone $values->profile_tel
 }
Пример #19
0
 /**
  * Send an email message.
  *
  * @param string $to      Recipient email address (or delimited list)
  * @param string $from    Sender email address
  * @param string $subject Subject line for message
  * @param string $body    Message body
  * @param string $cc      CC recipient (null for none)
  *
  * @throws MailException
  * @return void
  */
 public function send($to, $from, $subject, $body, $cc = null)
 {
     $recipients = $this->stringToAddressList($to);
     // Validate email addresses:
     if ($this->maxRecipients > 0 && $this->maxRecipients < count($recipients)) {
         throw new MailException('Too Many Email Recipients');
     }
     $validator = new \Zend\Validator\EmailAddress();
     if (count($recipients) == 0) {
         throw new MailException('Invalid Recipient Email Address');
     }
     foreach ($recipients as $current) {
         if (!$validator->isValid($current->getEmail())) {
             throw new MailException('Invalid Recipient Email Address');
         }
     }
     if (!$validator->isValid($from)) {
         throw new MailException('Invalid Sender Email Address');
     }
     // Convert all exceptions thrown by mailer into MailException objects:
     try {
         // Send message
         $message = $this->getNewMessage()->addTo($to)->setBody($body)->setSubject($subject);
         if ($this->from == null) {
             $message->addFrom($from);
         } else {
             $message->setReplyTo($from);
             $message->addFrom($this->from);
         }
         if ($cc !== null) {
             $message->addCc($cc);
         }
         $this->getTransport()->send($message);
     } catch (\Exception $e) {
         throw new MailException($e->getMessage());
     }
 }
Пример #20
0
 /**
  * Create record feedback form and send feedback to correct recipient.
  *
  * @return \Zend\View\Model\ViewModel
  * @throws \Exception
  */
 public function feedbackAction()
 {
     $view = $this->createViewModel();
     if ($this->formWasSubmitted('submitFeedback')) {
         $flashMsg = $this->flashMessenger();
         $message = $this->params()->fromPost('feedback_message');
         $senderEmail = $this->params()->fromPost('from');
         $validator = new \Zend\Validator\EmailAddress();
         if (!$validator->isValid($senderEmail)) {
             $flashMsg->setNamespace('error')->addMessage('Email address is invalid');
             return $view;
         }
         $driver = $this->loadRecord();
         $dataSource = $driver->getDataSource();
         $dataSources = $this->getServiceLocator()->get('VuFind\\Config')->get('datasources');
         $inst = isset($dataSources->{$dataSource}) ? $dataSources->{$dataSource} : null;
         $recipientEmail = isset($inst->feedbackEmail) ? $inst->feedbackEmail : null;
         if ($recipientEmail == null) {
             throw new \Exception('Feedback Module Error:' . 'Recipient Email Unset (see datasources.ini)');
         }
         $emailSubject = $this->translate('feedback_on_record', ['%%record%%' => $driver->getBreadcrumb()]);
         $serverUrl = $this->getRequest()->getServer('REQUEST_SCHEME');
         $serverUrl .= '://' . $this->getRequest()->getServer('HTTP_HOST');
         $emailMessage = "\n" . $this->translate('This email was sent from');
         $emailMessage .= ": " . $senderEmail . "\n";
         $emailMessage .= "------------------------------------------------------------\n";
         // Use the record plugin to render the template for the correct driver
         $recordPlugin = $this->getViewRenderer()->plugin('record');
         $emailMessage .= $recordPlugin($driver)->getEmail();
         $emailMessage .= "\n\n------------------------------------------------------------\n";
         if (!empty($message)) {
             $emailMessage .= "\n" . $this->translate('Message From Sender') . ":\n";
             $emailMessage .= "\n" . $message . "\n\n";
         }
         // This sets up the email to be sent
         $mail = new Mail\Message();
         $mail->setEncoding('UTF-8');
         $mail->setBody($emailMessage);
         $mail->setFrom($senderEmail);
         $mail->addTo($recipientEmail);
         try {
             $mail->setSubject($emailSubject);
         } catch (\Exception $e) {
             // Uhh.. PHP bug https://bugs.php.net/bug.php?id=53891 causes trouble
             // when trying to encode a subject containing non-ascii characters.
             // Try to convert the subject to ascii..
             // TODO: Remove this when PHP works properly..
             $emailSubject = iconv('UTF-8', 'ascii//TRANSLIT', $emailSubject);
             $mail->setSubject($emailSubject);
         }
         $headers = $mail->getHeaders();
         $headers->removeHeader('Content-Type');
         $headers->addHeaderLine('Content-Type', 'text/plain; charset=UTF-8');
         $this->getServiceLocator()->get('VuFind\\Mailer')->getTransport()->send($mail);
         $flashMsg->addSuccessMessage('Thank you for your feedback.');
         if ($this->getRequest()->getQuery('layout', 'no') !== 'lightbox' || 'layout/lightbox' != $this->layout()->getTemplate()) {
             $this->redirectToRecord('');
         }
     }
     return $view;
 }
Пример #21
0
 /**
  * Change phone number and email from library info.
  *
  * @param type $profile patron data
  * @param type $values  form values
  *
  * @return type
  */
 protected function processLibraryDataUpdate($profile, $values)
 {
     // Connect to the ILS:
     $catalog = $this->getILS();
     $validator = new \Zend\Validator\EmailAddress();
     if ($validator->isValid($values->profile_email)) {
         //Update Email
         $result = $catalog->updateEmail($profile, $values->profile_email);
     }
     // Update Phone
     $result = $result && $catalog->updatePhone($profile, $values->profile_tel);
     return $result;
 }
Пример #22
0
 public function changeMyInfoAction()
 {
     $this->checkAuth();
     $value = $this->getRequest()->getPost('value');
     $name = $this->getRequest()->getPost('name');
     $id = $this->auth->getIdentity()->id;
     $selected_user = new User(NULL, NULL, NULL, NULL);
     $selected_user->email = NULL;
     $selected_user->phone = NULL;
     $selected_user->note = NULL;
     $selected_user->name = NULL;
     if ($name == "pro-email") {
         $result = new Xeditable();
         $validator = new \Zend\Validator\EmailAddress();
         if ($validator->isValid($value)) {
             $selected_user->email = $value;
             $this->databaseService->changeUserInfo($id, $selected_user);
             $this->user->email = $value;
         } else {
             $result->setStatus(Xeditable::STATUS_ERROR);
             $result->setMsg(Xeditable::MSG_DATA_ERROR);
         }
         echo \Zend\Json\Json::encode($result, false);
         exit;
     }
     if ($name == "pro-phone") {
         $result = new Xeditable();
         $validator = new \Zend\Validator\NotEmpty();
         if ($validator->isValid($value)) {
             $selected_user->phone = $value;
             $this->databaseService->changeUserInfo($id, $selected_user);
             $this->user->phone = $value;
         } else {
             $result->setStatus(Xeditable::STATUS_ERROR);
             $result->setMsg(Xeditable::MSG_DATA_ERROR);
         }
         echo \Zend\Json\Json::encode($result, false);
         exit;
     }
     if ($name == "pro-name") {
         $result = new Xeditable();
         $validator = new \Zend\Validator\NotEmpty();
         if ($validator->isValid($value)) {
             $selected_user->name = $value;
             $this->databaseService->changeUserInfo($id, $selected_user);
             $this->user->phone = $value;
         } else {
             $result->setStatus(Xeditable::STATUS_ERROR);
             $result->setMsg(Xeditable::MSG_DATA_ERROR);
         }
         echo \Zend\Json\Json::encode($result, false);
         exit;
     }
     if ($name == "pro-note") {
         $result = new Xeditable();
         $validator = new \Zend\Validator\NotEmpty();
         if ($validator->isValid($value)) {
             $selected_user->note = $value;
             $this->databaseService->changeUserInfo($id, $selected_user);
             $this->user->note = $value;
         } else {
             $result->setStatus(Xeditable::STATUS_ERROR);
             $result->setMsg(Xeditable::MSG_DATA_ERROR);
         }
         echo \Zend\Json\Json::encode($result, false);
         exit;
     }
     $result = new Xeditable();
     $result->setStatus(Xeditable::STATUS_ERROR);
     $result->setMsg(Xeditable::MSG_DATA_EMPTY);
     echo \Zend\Json\Json::encode($result, false);
     exit;
 }
Пример #23
0
 protected function emailSubmitPrecheck()
 {
     $request = $this->getRequest();
     if ($request->isPost()) {
         $post_data = $request->getPost();
         $email = trim($post_data['email']);
         if (empty($email)) {
             throw new \Exception('Empty value!');
         }
         $validator = new \Zend\Validator\EmailAddress();
         $msg = '';
         if (!$validator->isValid($email)) {
             // email is invalid; print the reasons
             foreach ($validator->getMessages() as $messageId => $message) {
                 $msg .= "Validation failure '{$messageId}': {$message}\n";
             }
             throw new \Exception($msg);
         } else {
             return true;
         }
     } else {
         throw new \Exception('Error method!');
     }
 }
Пример #24
0
/**
 * @param $email
 * @return mixed
 */
function validate_email($email)
{
    $validate = new Zend\Validator\EmailAddress(['allow' => Zend\Validator\Hostname::ALLOW_ALL]);
    return $validate->isValid($email);
}
Пример #25
0
 /**
  * sets $email
  *
  * @param string email
  * @return Zend_Service_DeveloperGarden_ConferenceCall_ParticipantDetail
  */
 public function setEmail($email)
 {
     $validator = new Zend\Validator\EmailAddress();
     if (!$validator->isValid($email)) {
         throw new Zend_Service_DeveloperGarden_Exception('Not a valid e-mail address.');
     }
     $this->email = $email;
     return $this;
 }
Пример #26
0
 public function loginByPassword($loginIdentity, $password)
 {
     $identityType = 'userName';
     if (is_numeric($loginIdentity)) {
         $identityType = 'mobile';
     } else {
         $validator = new \Zend\Validator\EmailAddress();
         if ($validator->isValid($loginIdentity)) {
             $identityType = 'email';
         }
     }
     switch ($identityType) {
         case 'email':
             $dbWhere = array('email' => $loginIdentity);
             $identityColumn = 'email';
             break;
         case 'mobile':
             $dbWhere = array('mobile' => $loginIdentity);
             $identityColumn = 'mobile';
             break;
         default:
             $dbWhere = array('userName' => $loginIdentity);
             $identityColumn = 'userName';
     }
     $auth = Auth::factory();
     $user = $this->getItem()->getDataClass()->columns(array('id', 'salt', 'userName'))->where($dbWhere)->find('one');
     if (!$user || !$user['id']) {
         return $this->loginResult = new Result(Result::FAILURE_IDENTITY_NOT_FOUND, $loginIdentity, array(Result::FAILURE_IDENTITY_NOT_FOUND => 'A record with the supplied identity could not be found.'));
     }
     if (!$user['salt']) {
         throw new \Exception(sprintf('User authention salt not found'));
     }
     $bcrypt = new \Zend\Crypt\Password\Bcrypt();
     $bcrypt->setSalt($user['salt']);
     $password = $bcrypt->create($password);
     $this->loginResult = $loginResult = $auth->getAuthService(array('tableName' => 'user_users', 'identityColumn' => $identityColumn, 'credentialColumn' => 'password'))->getAdapter()->setIdentity($loginIdentity)->setCredential($password)->authenticate();
     if ($loginResult->isValid()) {
         return $this->loginById($user['id']);
     }
     return $loginResult;
 }
Пример #27
0
 /**
  * Create a new user account from the request.
  *
  * @param \Zend\Http\PhpEnvironment\Request $request Request object containing
  * new account details.
  *
  * @throws AuthException
  * @return \VuFind\Db\Row\User New user row.
  */
 public function create($request)
 {
     // Ensure that all expected parameters are populated to avoid notices
     // in the code below.
     $params = ['firstname' => '', 'lastname' => '', 'username' => '', 'password' => '', 'password2' => '', 'email' => ''];
     foreach ($params as $param => $default) {
         $params[$param] = $request->getPost()->get($param, $default);
     }
     // Validate Input
     $this->validateUsernameAndPassword($params);
     // Invalid Email Check
     $validator = new \Zend\Validator\EmailAddress();
     if (!$validator->isValid($params['email'])) {
         throw new AuthException('Email address is invalid');
     }
     if (!$this->emailAllowed($params['email'])) {
         throw new AuthException('authentication_error_creation_blocked');
     }
     // Make sure we have a unique username
     $table = $this->getUserTable();
     if ($table->getByUsername($params['username'], false)) {
         throw new AuthException('That username is already taken');
     }
     // Make sure we have a unique email
     if ($table->getByEmail($params['email'])) {
         throw new AuthException('That email address is already used');
     }
     // If we got this far, we're ready to create the account:
     $data = ['username' => $params['username'], 'firstname' => $params['firstname'], 'lastname' => $params['lastname'], 'email' => $params['email'], 'created' => date('Y-m-d H:i:s')];
     if ($this->passwordHashingEnabled()) {
         $bcrypt = new Bcrypt();
         $data['pass_hash'] = $bcrypt->create($params['password']);
     } else {
         $data['password'] = $params['password'];
     }
     // Create the row and send it back to the caller:
     $table->insert($data);
     return $table->getByUsername($params['username'], false);
 }
Пример #28
0
 public function authenticate(AuthEvent $e)
 {
     $mapper = new \ZfcUserLdap\Mapper\User($this->getServiceManager()->get('ldap_interface'), $this->getServiceManager()->get('zfcuser_module_options'));
     $this->setMapper($mapper);
     if ($this->isSatisfied()) {
         $storage = $this->getStorage()->read();
         $e->setIdentity($storage['identity'])->setCode(AuthenticationResult::SUCCESS)->setMessages(array('Authentication successful.'));
         return;
     }
     $identity = $e->getRequest()->getPost()->get('identity');
     $credential = $e->getRequest()->getPost()->get('credential');
     $userObject = NULL;
     /*
      * In some special case scenarios some LDAP providers allow LDAP
      * logins via email address both as uid or as mail address lookup,
      * so to provide an interface to both we do a validator instead of
      * a loop to verify if it's an email address or not and pull the user.
      *
      * Authentication will then be done on the *actual* username set in LDAP
      * which in some cases may be case sensitive which could cause an issue
      * where users do not exist if their email was created with upper case
      * letters and the user types in lower case.
      *
      * $fields = $this->getOptions()->getAuthIdentityFields();
      */
     $zulConfig = $this->getServiceManager()->get('config')['ZfcUserLdap'];
     //         var_dump($zulConfig);
     //         var_dump($zulConfig['auto_insertion']['enabled']);
     //         exit();
     $em = $this->getServiceManager()->get('doctrine.entitymanager.orm_default');
     $validator = new \Zend\Validator\EmailAddress();
     if ($validator->isValid($identity)) {
         $userObject = $this->getMapper()->findByEmail($identity);
     } else {
         $userObject = $this->getMapper()->findByUsername($identity);
     }
     if (!$userObject) {
         $e->setCode(AuthenticationResult::FAILURE_IDENTITY_NOT_FOUND)->setMessages(array('A record with the supplied identity could not be found.'));
         $this->setSatisfied(false);
         return false;
     }
     if ($this->getOptions()->getEnableUserState()) {
         // Don't allow user to login if state is not in allowed list
         if (!in_array($userObject->getState(), $this->getOptions()->getAllowedLoginStates())) {
             $e->setCode(AuthenticationResult::FAILURE_UNCATEGORIZED)->setMessages(array('A record with the supplied identity is not active.'));
             $this->setSatisfied(false);
             return false;
         }
     }
     if ($auth = $this->getMapper()->authenticate($userObject->getUsername(), $credential) !== TRUE) {
         //         	var_dump($this->getMapper()->authenticate($userObject->getUsername(), $credential));
         //         	exit();
         // Password does not match
         $e->setCode(AuthenticationResult::FAILURE_CREDENTIAL_INVALID)->setMessages(array($auth));
         $this->setSatisfied(false);
         return false;
     }
     // If auto insertion is on, we will check against DB for existing user,
     // then will create or update user depending on results and settings
     if ($zulConfig['auto_insertion']['enabled']) {
         $validator = new \Zend\Validator\EmailAddress();
         if ($validator->isValid($identity)) {
             $userDbObject = $em->getRepository('ZfcUserLdap\\Entity\\User')->findOneBy(array('mail' => $identity));
         } else {
             $userDbObject = $em->getRepository('ZfcUserLdap\\Entity\\User')->findOneBy(array('username' => $identity));
         }
         if ($userDbObject === NULL) {
             $supportedRoles = array();
             $roles = $em->getRepository('ZfcUserLdap\\Entity\\Role')->findAll();
             foreach ($roles as $role) {
                 $supportedRoles[$role->getRoleId()] = $role->getId();
             }
             $em->persist($userObject);
             foreach ($userObject->getMemberof() as $k => $v) {
                 foreach ($roles as $r) {
                     if ($v == $r->getRoleId()) {
                         $userObject->addRole($r);
                     }
                 }
             }
             $roles = $em->getRepository('ZfcUserLdap\\Entity\\Role')->findBy(array("roleId" => "user"));
             if (count($roles)) {
                 $userObject->addRole($roles[0]);
             }
             //         		var_dump($roles);
             //         		exit();
             $em->persist($userObject);
             $em->flush();
         } elseif ($zulConfig['auto_insertion']['auto_update']) {
             $supportedRoles = array();
             $roles = $em->getRepository('ZfcUserLdap\\Entity\\Role')->findAll();
             foreach ($roles as $role) {
                 $supportedRoles[$role->getRoleId()] = $role->getId();
             }
             $member_off = array();
             foreach ($userObject->getMemberof() as $k => $v) {
                 if (isset($supportedRoles[$v])) {
                     $member_off[] = $v;
                 }
             }
             $exists_roles = array();
             foreach ($userDbObject->getRoles() as $k => $v) {
                 $exists_roles[] = $v;
             }
             /**
              * ������� ��� ����, ������� ������� �� ���������
              */
             foreach ($userDbObject->getRolesObj() as $role1) {
                 if (!in_array($role1->getRoleId(), $member_off) && $role1->getRoleId() != 'user') {
                     $userDbObject->getRolesObj()->removeElement($role1);
                 }
             }
             /**
              * ��������� ����, ������� ��������� ��� ������� ������������
              */
             foreach ($userObject->getMemberof() as $k => $v) {
                 foreach ($roles as $r) {
                     if ($v == $r->getRoleId()) {
                         $userObject->addRole($r);
                     }
                 }
             }
             /**
              * ��������� ���, Email
              */
             $userDbObject->setDisplayName($userObject->getDisplayName());
             $userDbObject->setEmail($userObject->getEmail());
             $em->persist($userDbObject);
             $em->flush();
             $userObject = $userDbObject;
         } else {
             $userObject = $userDbObject;
         }
     }
     //         var_dump($userObject);
     //         exit();
     // Success!
     $e->setIdentity($userObject);
     //         var_dump($e->getIdentity());
     //         exit();
     $this->setSatisfied(true);
     $storage = $this->getStorage()->read();
     $storage['identity'] = $e->getIdentity();
     $session = new Container('ZfcUserLdap');
     //         $session->offsetSet('ldapObj', $this->getServiceManager()->get('ldap_interface')->findById($userObject->getId()));
     $session->offsetSet('ldapObj', $userObject);
     $this->getStorage()->write($storage);
     $e->setCode(AuthenticationResult::SUCCESS)->setMessages(array('Authentication successful.'));
 }
Пример #29
0
 public function sendemailAction()
 {
     $data = $this->params()->fromQuery();
     if (!isset($data['email']) || !$data['email']) {
         return 'Dữ liệu không đúng';
     }
     if (!isset($data['activeKey']) || !$data['activeKey']) {
         return 'Dữ liệu không đúng';
     }
     $validator = new \Zend\Validator\EmailAddress();
     if ($validator->isValid($data['email'])) {
         $user = new User();
         $user->setEmail($data['email']);
         $user->setActiveKey($data['activeKey']);
         /* @var $userMapper \User\Model\UserMapper */
         $userMapper = $this->getServiceLocator()->get('User\\Model\\UserMapper');
         if ($userMapper->checkExistsUserActive($user)) {
             $renderer = $this->getServiceLocator()->get('Zend\\View\\Renderer\\RendererInterface');
             // Email content
             $viewContent = new \Zend\View\Model\ViewModel(array('activeLink' => Uri::buildAutoHttp('/user/user/activeaccount', ['u' => $user->getEmail(), 'c' => $user->getActiveKey()])));
             $viewContent->setTemplate('email/activeFill');
             // set in module.config.php
             $content = $renderer->render($viewContent);
             // Email layout
             $viewLayout = new \Zend\View\Model\ViewModel(array('content' => $content));
             $viewLayout->setTemplate('email/layout');
             // set in module.config.php
             $message = new Message();
             $message->addTo($data['email']);
             $message->addFrom('*****@*****.**', $_SERVER['HTTP_HOST']);
             $message->setSubject('Welcome to ' . $_SERVER['HTTP_HOST']);
             $html = new \Zend\Mime\Part($renderer->render($viewLayout));
             $html->type = 'text/html';
             $body = new \Zend\Mime\Message();
             $body->setParts(array($html));
             $message->setBody($body);
             $message->setEncoding("UTF-8");
             $smtp = new \Zend\Mail\Transport\Smtp();
             $config = $this->getServiceLocator()->get('Config');
             $options = new SmtpOptions($config['smtpOptions']);
             $smtp->setOptions($options);
             $smtp->send($message);
             $json = new JsonModel();
             return $json->setVariable('Status', 'Đã xong');
         } else {
             return 'Dữ liệu không phù hợp';
         }
     }
 }
 public function editAction()
 {
     $error = array();
     //Tiêu đề
     $title = 'Template Email > Chỉnh sửa';
     $this->headTitle($title)->setSeparator(" - ")->append("Hệ thống quản trị website");
     $item = $this->getTable()->getItem($this->_arrParam, array('task' => 'get-item'));
     $emailMarketingAdminForm = $this->serviceLocator->get('FormElementManager')->get('emailMarketingAdminForm');
     $emailMarketingAdminForm->setInputFilter(new \Admin\Form\EmailTemplateFilter(array('task' => 'edit', 'id' => $this->_arrParam['id'])));
     $emailMarketingAdminForm->bind($item);
     if ($this->getRequest()->isPost()) {
         $data = $this->getRequest()->getPost();
         $emailMarketingAdminForm->setData($data);
         //===========Kiểm tra xem nhập email=============
         $validator = new \Zend\Validator\EmailAddress();
         $arrEmail = explode(",", $this->_arrPost['email']);
         $arrEmail = array_unique($arrEmail);
         //loại bỏ email trùng nhau
         //kiểm tra số lượng email
         if (count($arrEmail) > 3) {
             $error[] = 'Chỉ được nhập tối đa 3 email';
         }
         foreach ($arrEmail as $key => $email) {
             //(thừa dấu phẩy ở đầu và cuối chuỗi)
             if ($email == '') {
                 $error[] = "Giữa các email phải cách nhau bằng dấu phẩy";
                 break;
             }
             //Kiểm tra xem email có hợp lệ không
             if (!$validator->isValid($email)) {
                 $error[] = 'Email không hợp lệ';
                 break;
             }
         }
         if ($emailMarketingAdminForm->isValid() && empty($error)) {
             //Chống tấn công XSS
             $purifier = new \HTMLPurifier_HTMLPurifier();
             $data = array('id' => $purifier->purify($this->_arrPost['id']), 'name' => $purifier->purify($this->_viewHelper->cmsReplaceString($this->_arrPost['name'])), 'content' => $purifier->purify($this->_viewHelper->cmsReplaceString($this->_arrPost['content'])), 'email' => $purifier->purify($this->_viewHelper->cmsReplaceString($this->_arrPost['email'])));
             $this->getTable()->saveItem($data, array('task' => 'edit'));
             $this->flashMessenger()->addSuccessMessage('Dữ liệu đã được lưu thành công');
             $this->redirect()->toUrl('/admin/emailmarketing/');
         } else {
             //echo '<pre>';
             //print_r($newsForm->getMessages());
             //echo '</pre>';
         }
     }
     return new ViewModel(array('title' => $title, 'arrParam' => $this->_arrParam, 'currentController' => $this->_currentController, 'myForm' => $emailMarketingAdminForm, 'item' => $item, 'error' => $error));
 }