public function executeNewuser(sfWebRequest $request)
 {
     $this->form = new UserForm();
     // check if the data is coming from POST method
     if ($request->isMethod('post')) {
         // bind the form
         $this->form->bind($request->getParameter($this->form->getName()));
         $captcha = new reCaptcha();
         $responsecaptcha = $captcha->recaptcha_check_answer($_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
         //check capcha
         if (!$responsecaptcha->is_valid) {
             $this->getUser()->setFlash('message', 'Invalid Sequrity Code,Please enter again');
         } else {
             $formData = $this->form->getValues();
             $checkUsernameAndEmail = Doctrine::getTable('User')->func_checkUsernameAndEmail($formData['email_address'], $formData['username']);
             if (count($checkUsernameAndEmail)) {
                 $this->getUser()->setFlash('message', 'UserName or Email is already taken');
             } else {
                 $user = new User();
                 $user->setUsername($formData['username']);
                 $getSalt = Doctrine::getTable('User')->func_generateSalt();
                 $getPassword = Doctrine::getTable('User')->func_generatePassword($getSalt, $formData['pass']);
                 $user->setSalt($getSalt);
                 $user->setPass($getPassword);
                 $user->setIsActive(0);
                 $user->setFirstName($formData['first_name']);
                 $user->setLastName($formData['last_name']);
                 $user->setEmailAddress($formData['email_address']);
                 $user->save();
                 Doctrine::getTable('User')->func_sendVerificationEmail($formData['first_name'], $formData['email_address'], $getSalt);
                 $this->getUser()->setFlash('message', 'Thanks for registration. Account activation link has been sent into your email address.');
                 $this->redirect('@login');
             }
             // if the username and email does not exist
         }
     }
     // check if the method is POST
 }