コード例 #1
0
ファイル: Conversation.php プロジェクト: rcrrich/cunity
 /**
  *
  */
 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();
 }
コード例 #2
0
ファイル: Process.php プロジェクト: rcrrich/cunity
 /**
  *
  */
 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();
 }
コード例 #3
0
ファイル: Register.php プロジェクト: rcrrich/cunity
 /**
  *
  */
 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();
         }
     }
 }
コード例 #4
0
ファイル: Email.php プロジェクト: rcrrich/cunity
 /**
  * @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;
 }
コード例 #5
0
ファイル: Username.php プロジェクト: rcrrich/cunity
 /**
  * @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;
 }
コード例 #6
0
ファイル: Register.php プロジェクト: rcrrich/cunity
 /**
  *
  */
 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();
     }
 }
コード例 #7
0
ファイル: Login.php プロジェクト: rcrrich/cunity
 /**
  * @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;
 }
コード例 #8
0
ファイル: Relationships.php プロジェクト: rcrrich/cunity
 /**
  * @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;
 }
コード例 #9
0
ファイル: Process.php プロジェクト: rcrrich/cunity
 /**
  *
  */
 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();
 }
コード例 #10
0
ファイル: Process.php プロジェクト: rcrrich/cunity
 /**
  * @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;
 }