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"; }
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; }
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; }
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; }