/** * */ private function load() { $table = new Db\Table\Conversations(); $userTable = new Users(); $view = new \Cunity\Messages\View\Conversation(); $conversation = $table->loadConversationDetails($_GET['action']); $users = explode(",", $conversation['users']); if (!in_array($_SESSION['user']->userid, $users)) { $view = new PageNotFound(); } else { unset($users[array_search($_SESSION['user']->userid, $users)]); } $table->markAsRead($_GET['action']); if (!empty($users)) { $conversation['users'] = $userTable->getSet($users, "u.userid", ["u.userid", "u.username", "u.name"])->toArray(); $usernames = ""; foreach ($conversation['users'] as $user) { $usernames .= $user['name'] . ','; } $view->setMetaData(["title" => substr($usernames, 0, -1)]); } else { $view->setMetaData(["title" => "Conversation"]); } $view->assign("conversation", $conversation); $view->show(); }
/** * */ public function getAll() { $table = new Users(); $result = $table->getSet([], "userid", ["username", "name", "userid"]); $view = new View($result !== null); $view->addData(["result" => $result->toArray()]); $view->sendResponse(); }
/** * */ private function sendRegistration() { $this->_users = new Users(); if (!$this->validateForm()) { $this->renderErrors(); } else { if ($this->_users->add($_POST)) { $view = new Registration(); $view->assign('success', true); $view->render(); } } }
/** * @param string $value * @return bool */ public function isValid($value) { $returnValue = false; $this->_setValue($value); $users = new Users(); if (empty($value)) { $this->_error(self::EMPTYSTRING); } else { $user = $users->search("email", $value); if ($user !== null && !Login::loggedIn() || Login::loggedIn() && $user->userid !== $_SESSION['user']->userid) { $this->_error(self::USED); $returnValue = false; } else { $returnValue = parent::isValid($value); } } return $returnValue; }
/** * @param string $value * @return bool */ public function isValid($value) { $this->_setValue($value); if (empty($value) || strlen($value) < 2 || strlen($value) > 20) { $this->_error(self::LENGTH); return false; } $users = new Users(); $user = $users->search("username", $value); if ($user !== null && (Login::loggedIn() && $user->userid !== $_SESSION['user']->userid)) { $this->_error(self::USED); return false; } $status = preg_match('/^[A-Za-z0-9_.-]*$/', $value); if (false === $status || !$status) { $this->_error(self::INVALID); return false; } return true; }
/** * */ public function reset() { $error_messages = []; $view = new ResetPassword(); if (!empty($_POST)) { $users = new Users(); $user = $users->search("email", $_POST['email']); if ($user !== null) { $tokendata = json_decode($user->password_token, true); if ($_POST['token'] == $tokendata['token']) { if (time() - $tokendata["time"] > 1800) { $this->errors["token"] = "The given token has expired! Every token is only valid for 30 minutes"; } else { $validatePassword = new Password(); if (!$validatePassword->passwordValid($_POST['password'], $_POST['password_repeat'])) { $this->errors["password"] = implode(',', $validatePassword->getMessages()); $this->errors["password_repeat"] = ""; } else { $user->password = sha1($_POST['password'] . $user->salt); $user->password_token = null; $user->save(); new Message("Done!", "Your password was changed successfully! You can now login!", "success"); exit; } } } else { $this->errors["token"] = "The given token is not correct!"; } } else { $this->errors["email"] = "Email was not found in our system!"; } $this->assignErrors($view, $error_messages); $view->show(); } else { $view->show(); } }
/** * @param bool $autologin * @return bool|null|\Zend_Db_Table_Row_Abstract */ public static function checkAutoLogin($autologin = true) { if (!isset($_COOKIE['cunity-login']) || !isset($_COOKIE['cunity-login-token'])) { return false; } $users = new Users(); $user = $users->search("username", base64_decode($_COOKIE['cunity-login'])); if (md5($user->salt . "-" . $user->registered . "-" . $user->userhash) == $_COOKIE['cunity-login-token']) { if ($autologin) { $user->setLogin(true); header("Location:" . Url::convertUrl("index.php?m=profile")); exit; } else { return $user; } } return false; }
/** * @param int $userid * @return array|null */ public function getFullFriendRequests($userid = 0) { $friends = $this->getFriendRequests($userid); if (!empty($friends)) { $users = new Users(); return $users->getSet($friends, "u.userid", ["u.userid", "u.username", "u.name"])->toArray(); } return null; }
/** * */ private function forgetPw() { if (!isset($_POST['resetPw'])) { $view = new ForgetPw(); $view->render(); exit; } else { $users = new Users(); $user = $users->search("email", $_POST['email']); if ($user !== null) { $token = rand(123123, 999999); $user->password_token = json_encode(["token" => $token, "time" => time()]); $user->save(); new ForgetPwMail(["name" => $user->username, "email" => $user->email], $token); new Message("Done!", "Please check your mails! We have sent you a token to reset your password!", "success"); exit; } } $view = new ForgetPw(); $view->assign("error", true); $view->render(); }
/** * @return bool */ public function recreateSearchIndex() { $users = new Users(); try { $index = \Zend_Search_Lucene::open($this->indexfile); } catch (\Zend_Search_Lucene_Exception $e) { $index = \Zend_Search_Lucene::create($this->indexfile); } $all = $users->getSet([]); foreach ($all as $user) { $doc = new \Zend_Search_Lucene_Document(); $doc->addField(\Zend_Search_Lucene_Field::Text('username', $user->username)); $doc->addField(\Zend_Search_Lucene_Field::unStored('name', $user->name)); $index->addDocument($doc); } $index->optimize(); return true; }