/** * Function renders main page and implements user login behaviour. * If user is already logged in, he will be redirected to his twitter wall. * If user doesn't exist or entered data is wrong, warning message will show. */ public function action() { if (isLoggedIn()) { redirect(\route\Route::get("twitterWall")->generate(array("id" => UserRepository::getIdByUsername($_SESSION['username'])))); } $main = new Main(); $main->setPageTitle("Twitter App"); $body = new \templates\Index(); $main->setBody($body); echo $main; if (UserRepository::isLoggedIn()) { redirect(\route\Route::get("twitterWall")->generate()); } if (post('login')) { $username = htmlentities(trim(post('username'))); $password = htmlentities(trim(post('password'))); $hashedPassword = hash_password($password); if (UserRepository::login($username, $hashedPassword)) { redirect(\route\Route::get("twitterWall")->generate(array("id" => UserRepository::getIdByUsername($_SESSION['username'])))); exit; } else { ?> <script src="assets/js/loginError.js"></script> <?php } } }
protected function outputHTML() { ?> <div class="container"> <div class="panel panel-info" id="comments"> <div class="panel-heading"> <h3 class="panel-title">Friends</h3> </div> <div class="panel-body"> <?php $myID = UserRepository::getIdByUsername($_SESSION['username']); $counter = 0; foreach ($this->users as $user) { $id = FriendRepository::isFriend($myID, $user['userid']); if (count($id) != 0) { $counter++; echo "<p><a href='" . \route\Route::get("userProfile")->generate(array("id" => $user['userid'])) . "'>" . $user['username'] . "</a></p>"; } } if ($counter == 0) { echo "<p>You do not have friends. Please add members.</p>"; } ?> </div> </div> </div> <?php }
/** * Shows all recieved messages from all users. Newer messages are on top. * If message is unread, user will be notified. */ public function showMessages() { checkUnauthorizedAccess(); $myID = UserRepository::getIdByUsername($_SESSION['username']); $messages = MessageRepository::getMessages($myID); $main = new Main(); $body = new ShowMessages(); $body->setMessages($messages); echo $main->setPageTitle("Messages")->setBody($body); }
public function showRequests() { checkUnauthorizedAccess(); $main = new Main(); $body = new \templates\ShowRequests(); $myID = UserRepository::getIdByUsername($_SESSION['username']); $requests = RequestRepository::checksNewRequests($myID); $body->setRequests($requests); $main->setPageTitle("Friend Requests")->setBody($body); echo $main; }
public function unblockUser() { $profileID = getIdFromURL(); $activeUserID = UserRepository::getIdByUsername($_SESSION['username']); try { ResctrictionRepository::removeRestriction($activeUserID, $profileID); redirect(Route::get("userProfile")->generate(array("id" => $profileID))); } catch (\PDOException $e) { $e->getMessage(); } }
function newRequestNotification() { $myID = \Repository\UserRepository::getIdByUsername($_SESSION['username']); $requests = \Repository\RequestRepository::checksNewRequests($myID); $counter = 0; foreach ($requests as $r) { $counter++; } $color = "default"; if ($counter > 0) { $color = "red"; } return $color; }
public function postTweetComment() { checkUnauthorizedAccess(); $id = getIdFromURL(); checkIntValueOfId($id); if (post('comment')) { $tweetid = $id; $username = $_SESSION['username']; $userid = UserRepository::getIdByUsername($username); $content = htmlentities(trim(post('comment'))); $comment = new TweetComment(); $comment->setTweetid($tweetid); $comment->setUserid($userid); $comment->setContent($content); try { TweetCommentRepository::postComment($comment); echo json_encode(['comment' => parseText($comment->getContent()), 'user' => $username]); } catch (\PDOException $e) { $e->getMessage(); } } }
/** * Sorts messages by id. Newer messages are listed first. * Bigger id means that message is sent later. */ public function action() { checkUnauthorizedAccess(); $order = getSortingOrderFromURL(); $myID = UserRepository::getIdByUsername($_SESSION['username']); $messages = MessageRepository::newestFirst($myID); if ($order == "oldest") { $messages = MessageRepository::oldestFirst($myID); } else { if ($order == "unread") { $messages = MessageRepository::unreadFirst($myID); } else { if ($order == "read") { $messages = MessageRepository::readFirst($myID); } } } $main = new Main(); $body = new ShowMessages(); $body->setMessages($messages); echo $main->setPageTitle("Messages")->setBody($body); }
public function postTweet() { checkUnauthorizedAccess(); if (post('tweet')) { $fromid = UserRepository::getIdByUsername($_SESSION['username']); $toid = getIdFromURL(); $content = htmlentities(trim(post('content'))); $tag = htmlentities(trim(post('tag'))); $photo = post('selectPhoto'); $tweet = new Tweet(); $tweet->setFromid($fromid); $tweet->setToid($toid); $tweet->setContent($content); $tweet->setImage($photo); $tweet->setTag($tag); try { TweetRepository::postTweet($tweet); redirect(\route\Route::get("twitterWall")->generate(array("id" => $toid))); } catch (\PDOException $e) { $e->getMessage(); } } }
/** * Function creates new gallery and saves it to database. * Gallery has user id, title, tag and date of creation. * Title and tag are entered by user. */ public function action() { checkUnauthorizedAccess(); $main = new Main(); $main->setPageTitle("Create gallery"); $body = new \templates\AddGallery(); $main->setBody($body); echo $main; $username = $_SESSION['username']; if (post('addGallery')) { $userID = UserRepository::getIdByUsername($username); $title = trim(post('galleryTitle')); $tag = trim(post('galleryTag')); $dateOfCreation = date('Y-m-d H:i:s'); //server side validation of data $error = false; if (strlen($title) < 4 || strlen($title) > 25) { $error = true; } if (strlen($tag) < 3 || strlen($tag) > 25) { $error = true; } if (!$error) { $gallery = new Gallery(); $gallery->setUserID($userID); $gallery->setTitle($title); $gallery->setTag($tag); $gallery->setCreated($dateOfCreation); try { GalleryRepository::addGallery($gallery); redirect(\route\Route::get("listGalleries")->generate()); } catch (\PDOException $e) { $e->getMessage(); } } } }
protected function outputHTML() { ?> <div class="container"> <div class="panel panel-info" id="comments"> <div class="panel-heading"> <h3 class="panel-title"><?php echo $this->user['username']; ?> profile</h3> </div> <div class="panel-body"> <p>First name: <?php echo $this->user['firstname']; ?> </p> <p>Last name: <?php echo $this->user['lastname']; ?> </p> <p>E-mail address: <?php echo $this->user['email']; ?> </p> <p> <a href="<?php echo \route\Route::get("twitterWall")->generate(array("id" => $this->user['userid'])); ?> ">User wall</a></p> <?php $userid = UserRepository::getIdByUsername($_SESSION['username']); //ako otvoreni profil nije profil ulogiranog korisnika if (!($this->user['userid'] == $userid)) { $friendsID = FriendRepository::isFriend($userid, $this->user['userid']); //ako su prijatelji ponuditi opciju Unfriend if ($friendsID != null) { ?> <p><a href="<?php echo \route\Route::get("sendMessage")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-info">Send Message</a> <a href="<?php echo \route\Route::get("unfriend")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-danger">Unfriend</a> <?php $restrictionID = ResctrictionRepository::isBlocked($userid, $this->user['userid']); if ($restrictionID == null) { ?> <a href="<?php echo \route\Route::get("blockUser")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-warning">Block user</a></p> <?php } else { ?> <a href="<?php echo \route\Route::get("unblockUser")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-warning">Unblock user</a></p> <?php } ?> <?php //ako nisu prijatelji ponuditi opcije za prihvaćanje, odbijanje, uklanjanje //i slanje zahtjeva ovisno o situaciji } else { $getRequestID = RequestRepository::getRequest($this->user['userid'], $userid); $fromRequestID = RequestRepository::getRequest($userid, $this->user['userid']); if ($getRequestID != null) { ?> <p><a href="<?php echo \route\Route::get("acceptRequest")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-success">Accept</a> | <a href="<?php echo \route\Route::get("deleteRequest")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-danger">Delete</a> </p> <?php } else { if ($fromRequestID != null) { ?> <a href="<?php echo \route\Route::get("cancelRequest")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-danger">Cancel Request</a> <?php } else { ?> <a href="<?php echo \route\Route::get("sendFriendRequest")->generate(array("id" => $this->user['userid'])); ?> " class="btn btn-info">Send Friend Request</a> <?php } } } } ?> </div> </div> </div> <?php }
/** * Checks if user has permission to add photo to selected gallery. * User can add photo to a gallery only if he created the gallery. * @param $gallery * @return true if user has permission to add photo to the gallery */ function checkPermissionToAddPhotoToGallery($gallery) { $galleryCreatorID = $gallery['userid']; $activeUserID = \Repository\UserRepository::getIdByUsername($_SESSION['username']); return $activeUserID == $galleryCreatorID; }
protected function outputHTML() { ?> <!DOCTYPE HTML> <html> <head> <title><?php echo $this->pageTitle; ?> </title> <meta charset="utf-8"> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" integrity="sha256-MfvZlkHCEqatNoGiOXveE8FIwMzZg4W85qfrfIFBfYc= sha512-dTfge/zgoMYpP7QbHy4gWMEGsbsdZeCXz7irItjcC3sPUFtf0kuFbDz/ixG7ArTxmDjLXDmezHubeNikyKGVyQ==" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-2.1.4.js"></script> <script src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(document).ready(function () { $("#advancedSearchForm").hide(); $("#advanced").click(function () { $("#advancedSearchForm").toggle(); }); }); </script> <head/> <?php //postavljanje pozadinske slike if (isLoggedIn()) { $user = UserRepository::getUserByUsername($_SESSION['username']); if ($user['background'] == null) { echo "<body>"; } else { echo "<body background='/TwitterApp/assets/images/galleries/" . $user['background'] . "'>"; } } else { echo "<body>"; } ?> <div class="container"> <?php if (!isLoggedIn()) { $indexNavbar = new IndexNavbar(); echo $indexNavbar; } else { $userid = UserRepository::getIdByUsername($_SESSION['username']); //prikaži alatnu traku $userNavbar = new UserNavbar(); $userNavbar->setUserid($userid); echo $userNavbar; ?> <div class="col-md-4 col-md-offset-4"> <button class="btn btn-default btn-block" id="advanced" >Advanced search</button> </div> <br><br> <div class="col-md-12"> <form class="form-horizontal" id="advancedSearchForm" role="form" method="post" action="<?php echo \route\Route::get("advancedSearch")->generate(); ?> "> <br><br> <div class="form-group"> <div class="col-md-4 col-md-offset-4"> <label for="advancedSearch">Enter tags with operators AND, OR</label> <input class="form-control" type="text" name="searchInput" id="searchInput" placeholder="Search for..."> </div> </div> <div class="form-group"> <div class="col-md-4 col-md-offset-4"> <input type="submit" class="btn btn-info btn-block" name="submitSearch" id="submitSearch" value="Search"> </div> </div> </form> </div> <?php } ?> <div class="panel-body"> <div class="col-md-6"> <div class="entry"></div> </div> </div> </div> <?php echo $this->pageBody; ?> </body> </html> <?php }
/** * Changes visibility of a user. */ public function changeVisibility() { checkUnauthorizedAccess(); $userid = UserRepository::getIdByUsername($_SESSION['username']); $user = UserRepository::getUserByID($userid); if ($user['visibility'] == 1) { UserRepository::hideFromUsersList($userid); redirect(Route::get("listUsers")->generate()); } else { UserRepository::showInUsersList($userid); redirect(Route::get("listUsers")->generate()); } }