public function buildForm(FormBuilderInterface $builder, array $options)
 {
     global $CONFIG;
     $builder->add('subject', 'text', array('label' => 'Subject', 'required' => true, 'max_length' => VARCHAR_COLUMN_LENGTH_USED, 'attr' => array('autofocus' => 'autofocus')));
     $builder->add('email', 'email', array('label' => 'Email', 'required' => true, 'max_length' => VARCHAR_COLUMN_LENGTH_USED, 'data' => $this->currentUser ? $this->currentUser->getEmail() : ''));
     $builder->add('message', 'textarea', array('label' => 'Message', 'required' => true));
     if ($CONFIG->contactFormAntiSpam && !$this->currentUser) {
         $builder->add('antispam', 'text', array('label' => 'What is 2 + 2?', 'required' => true));
         $myExtraFieldValidatorSpam = function (FormEvent $event) {
             $form = $event->getForm();
             $myExtraField = $form->get('antispam')->getData();
             if ($myExtraField != '4' && $myExtraField != 'four') {
                 $form['antispam']->addError(new FormError("Please prove you are human"));
             }
         };
         $builder->addEventListener(FormEvents::POST_BIND, $myExtraFieldValidatorSpam);
     }
 }
 protected function checkUserInTest1(UserAccountModel $user)
 {
     $this->assertEquals("test", $user->getUsername());
     $this->assertEquals("*****@*****.**", $user->getEmail());
     $this->assertEquals(false, $user->checkPassword("1234"));
     $this->assertEquals(true, $user->checkPassword("password"));
     $this->assertEquals(false, $user->getIsEmailVerified());
     $this->assertEquals(false, $user->getIsSystemAdmin());
     $this->assertEquals(true, $user->getIsEditor());
 }
 public function create(UserAccountModel $user)
 {
     global $DB;
     $uavem = new UserAccountVerifyEmailModel();
     $uavem->setEmail($user->getEmail());
     $uavem->setUserAccountId($user->getId());
     $uavem->setAccessKey(createKey(2, 250));
     // TODO check not already used
     $stat = $DB->prepare("INSERT INTO user_account_verify_email (user_account_id, email, access_key, created_at) " . "VALUES (:user_account_id, :email, :access_key, :created_at)");
     $stat->execute(array('user_account_id' => $uavem->getUserAccountId(), 'access_key' => $uavem->getAccessKey(), 'email' => substr($uavem->getEmail(), 0, VARCHAR_COLUMN_LENGTH_USED), 'created_at' => \TimeSource::getFormattedForDataBase()));
     return $uavem;
 }
 public function getSendFromName(UserAccountModel $sentBy)
 {
     global $CONFIG;
     return $CONFIG->siteTitle . " on behalf of " . $sentBy->getEmail();
 }
 /**
  * This does not provide any audit logging and is for use by sys admins only.
  * @param UserAccountModel $user
  */
 public function editEmail(UserAccountModel $user)
 {
     global $DB;
     $stat = $DB->prepare("UPDATE user_account_information SET  email=:email, email_canonical=:email_canonical  WHERE id =:id");
     $stat->execute(array('id' => $user->getId(), 'email' => substr($user->getEmail(), 0, VARCHAR_COLUMN_LENGTH_USED), 'email_canonical' => substr(UserAccountModel::makeCanonicalEmail($user->getEmail()), 0, VARCHAR_COLUMN_LENGTH_USED)));
 }