Пример #1
0
 /**
  * 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 
         }
     }
 }
Пример #2
0
    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 
    }
Пример #3
0
 /**
  * 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);
 }
Пример #4
0
 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;
 }
Пример #5
0
 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();
     }
 }
Пример #6
0
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;
}
Пример #7
0
 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();
         }
     }
 }
Пример #8
0
 /**
  * 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);
 }
Пример #9
0
 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();
         }
     }
 }
Пример #10
0
 /**
  * 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();
             }
         }
     }
 }
Пример #11
0
    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 
    }
Пример #12
0
/**
 * 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;
}
Пример #13
0
    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 
    }
Пример #14
0
 /**
  * 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());
     }
 }