示例#1
0
 public static function getInstance()
 {
     if (is_null(self::$_instance)) {
         self::$_instance = new self();
         self::$_instance->_table = 'signup';
     }
     return self::$_instance;
 }
 public function validateCode($code)
 {
     $row = $this->_db->query('SELECT * FROM ' . $this->_table . ' WHERE code=?', [$code])->fetch();
     if ($row['code'] !== $code) {
         return false;
     } else {
         Application_Model_SignUpRepository::getInstance()->setValidated($row['email']);
         $user = Application_Model_UserRepository::getInstance()->getByEmail($row['email']);
         if (!is_null($user)) {
             $user->setRole('user');
             Application_Model_UserRepository::getInstance()->update($user);
         }
         $this->delete($code);
         return true;
     }
 }
示例#3
0
 private function updateUsers()
 {
     $date = $this->_userRepo->getLatestDate();
     $signUps = Application_Model_SignUpRepository::getInstance()->processSignup(5, $date);
     foreach ($signUps as $signUp) {
         $id = $this->_userRepo->add($signUp);
         $language = Application_Model_SignUpRepository::getInstance()->get($signUp->getId())->getLanguage();
         Application_Model_SignUpRepository::getInstance()->setId($id, $signUp->getEmail());
         Application_Model_UserSettingRepository::getInstance()->addSetting($id, $language);
         if ($signUp->isValidated()) {
             $this->_mail->sendActivated($signUp);
         }
     }
 }
示例#4
0
 public function signupAction()
 {
     $this->_helper->layout->setLayout('entrance');
     $request = $this->getRequest();
     $form = new Application_Form_UserSignup();
     if ($this->isLoggedin()) {
         $this->view->loggedin = true;
     } else {
         if ($this->getRequest()->isPost()) {
             if ('0' === $this->getParam('agree')) {
                 $form->getElement('agree')->addError($this->_translate->_('signup_not_agreed'));
             }
             if ($form->isValid($request->getPost())) {
                 $valid = true;
                 $email = strtolower($form->getValue('email'));
                 if ($form->getValue('password') !== $form->getValue('repassword')) {
                     $form->getElement('repassword')->addError($this->_translate->_('signup_not_matching'));
                     $valid = false;
                 }
                 if ($this->_userRepo->emailExists($email) || Application_Model_SignUpRepository::getInstance()->emailExists($email)) {
                     $form->getElement('email')->addError($this->_translate->_('signup_existing'));
                     $valid = false;
                 }
                 $domain = substr($email, strpos($email, '@') + 1);
                 if (!Application_Model_FakeMailRepository::getInstance()->isValid($domain)) {
                     $form->getElement('email')->addError($this->_translate->_('signup_fakemail'));
                     $valid = false;
                 }
                 if ($valid) {
                     $user = new Application_Model_Entity_User();
                     $user->setFirstName($form->getValue('firstname'));
                     $user->setLastName($form->getValue('lastname'));
                     $user->setEmail($email);
                     $user->setPassword(Application_Model_Hash::hash($form->getValue('password')));
                     $code = Application_Model_SignUpRepository::getInstance()->signup($user, '1' === $form->getValue('agreenotify'), $form->getValue('code'));
                     $this->_mail->sendSignUp($user, $code);
                     $this->_mail->report($user->getName() . ' signed up on feader with ' . $user->getEmail());
                     echo '<div class="center">' . $this->_translate->_('signup_success') . '</div>';
                     return;
                 }
             }
             $this->view->form = $form;
         } else {
             $form->getElement('code')->setValue($this->getParam('code'));
             $this->view->form = $form;
         }
     }
 }