Example #1
0
 public function cleanoldnewusersAction()
 {
     $maxAge = 24 * 60 * 60;
     $signUp = Ml_Model_SignUp::getInstance();
     $deleted = $signUp->gc($maxAge);
     echo "Number of rows with age > " . $maxAge . " (seconds) deleted in signUp: " . $deleted . "\n";
 }
Example #2
0
 public function confirmAction()
 {
     $auth = Zend_Auth::getInstance();
     $request = $this->getRequest();
     $registry = Zend_Registry::getInstance();
     $router = Zend_Controller_Front::getInstance()->getRouter();
     $config = $registry->get("config");
     if ($auth->hasIdentity()) {
         $registry->set("pleaseSignout", true);
         return $this->_forward("index", "logout");
     }
     $signUp = Ml_Model_SignUp::getInstance();
     $credential = Ml_Model_Credential::getInstance();
     $people = Ml_Model_People::getInstance();
     $profile = Ml_Model_Profile::getInstance();
     if ($config['ssl'] && (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")) {
         $this->_redirect("https://" . $config['webhostssl'] . $router->assemble(array($request->getUserParams()), "join_emailconfirm"), array("exit"));
     }
     $securityCode = $request->getParam("security_code");
     $confirmationInfo = $signUp->getByHash($securityCode);
     if (!$confirmationInfo) {
         $this->getResponse()->setHttpResponseCode(404);
         return $this->_forward("unavailable");
     }
     $form = $signUp->newIdentityForm($securityCode);
     if ($request->isPost() && $form->isValid($request->getPost())) {
         $newUsername = $form->getValue("newusername");
         $password = $form->getValue("password");
         $preUserInfo = array("alias" => $newUsername, "membershipdate" => $confirmationInfo['timestamp'], "name" => $confirmationInfo['name'], "email" => $confirmationInfo['email']);
         $uid = $people->create($newUsername, $password, $preUserInfo, $confirmationInfo);
         $getUserByUsername = $people->getByUsername($preUserInfo['alias']);
         $adapter = $credential->getAuthAdapter($getUserByUsername['id'], $password);
         if ($adapter) {
             $result = $auth->authenticate($adapter);
             if ($result->getCode() != Zend_Auth_Result::SUCCESS) {
                 throw new Exception("Could not authenticate 'just created' user");
             }
         }
         Zend_Session::regenerateId();
         $this->_redirect($router->assemble(array(), "join_welcome"), array("exit"));
     }
     $this->view->entry = $confirmationInfo;
     $this->view->confirmForm = $form;
 }
Example #3
0
 public function create($username, $password, $data, $confirmationInfo)
 {
     $signUp = Ml_Model_SignUp::getInstance();
     $credential = Ml_Model_Credential::getInstance();
     $profile = Ml_Model_Profile::getInstance();
     $this->_dbAdapter->beginTransaction();
     try {
         $signUp->delete($confirmationInfo['id']);
         $this->_dbTable->insert($data);
         $uid = $this->_dbAdapter->lastInsertId();
         if (!$uid) {
             throw new Exception("Failed to create user account");
         }
         $credential->setCredential($uid, $password);
         $profile->create($uid);
         $this->_dbAdapter->commit();
     } catch (Exception $e) {
         $this->_dbAdapter->rollBack();
         throw $e;
     }
     return $uid;
 }
Example #4
0
 public function isValid($value, $context = null)
 {
     $registry = Zend_Registry::getInstance();
     if (isset($context['email']) && $context['email'] && mb_strlen($context['email']) <= 60) {
         $signUp = Ml_Model_SignUp::getInstance();
         $emailData = $signUp->getByEmail(mb_strtolower($context['email']));
         if (!$emailData) {
             $registry->set("inviteCompleteBefore", true);
             return true;
         }
     }
     $valueString = (string) $value;
     $this->_setValue($valueString);
     if (mb_strlen($value) > 8) {
         $this->_error(self::INVALID_INVITE);
         return false;
     }
     if (empty($value)) {
         $this->_error(self::EMPTY_INVITE);
         return false;
     }
     $invites = Ml_Model_Invites::getInstance();
     $token = $invites->get($value);
     if (!$token) {
         $this->_error(self::NOTFOUND_INVITE);
         return false;
     }
     if ($token['used'] && $token['used'] != -1) {
         $this->_error(self::USED_INVITE);
         return false;
     }
     //check if the invite code is for 'more than one person'
     if ($token['used'] == -1) {
         $registry->set("inviteMultiple", true);
     }
     return true;
 }