diff --git a/website/public/API/adminChangeUser.php b/website/public/API/adminChangeUser.php index 067a7ba..6ec50c9 100644 --- a/website/public/API/adminChangeUser.php +++ b/website/public/API/adminChangeUser.php @@ -6,15 +6,20 @@ require_once ("../../queries/checkInput.php"); require_once ("../../queries/user.php"); require_once ("../../queries/group_page.php"); +$userinfo = getRoleByID($_SESSION['userID']); + if (isset($_POST["actions"]) && isset($_POST["userID"])) { changeUserStatusByID($_POST["userID"], $_POST["actions"]); } else if (isset($_POST["actions"]) && isset($_POST["groupID"])) { changeGroupStatusByID($_POST["groupID"], $_POST["actions"]); } else if (isset($_POST["batchactions"]) && isset($_POST["checkbox-user"])) { - changeMultipleUserStatusByID($_POST["checkbox-user"], $_POST["batchactions"]); + if ($userinfo == 'owner') { + changeMultipleUserStatusByID($_POST["checkbox-user"], $_POST["batchactions"]); + } else { + changeMultipleUserStatusByIDAdmin($_POST["checkbox-user"], $_POST["batchactions"]); + } } else if (isset($_POST["groupbatchactions"]) && isset($_POST["checkbox-group"])) { changeMultipleGroupStatusByID($_POST["checkbox-group"], $_POST["groupbatchactions"]); +} else if (isset($_POST['bancommentuserID']) && isset($_POST['bancommenttext'])) { + editBanCommentByID($_POST['bancommentuserID'], $_POST['bancommenttext']); } - -//header("location: ../admin.php"); -print_r($_POST); \ No newline at end of file diff --git a/website/public/API/adminPageNumber.php b/website/public/API/adminPageNumber.php index a6ac554..c829249 100644 --- a/website/public/API/adminPageNumber.php +++ b/website/public/API/adminPageNumber.php @@ -5,6 +5,7 @@ session_start(); require_once ("../../queries/connect.php"); require_once ("../../queries/checkInput.php"); require_once ("../../queries/user.php"); +require_once ("../../queries/group_page.php"); $search = ""; if (isset($_POST["search"])) { @@ -21,8 +22,17 @@ if (isset($_POST['status'])) { $status = $_POST["status"]; } -if ($pagetype == "user") { - include ("../../views/adminpanel-page.php"); -} else { - echo "Pagenumber failed!"; +$groupstatus = array(); +if (isset($_POST['groupstatus'])) { + $groupstatus = $_POST["groupstatus"]; } + +$entries = 20; +$currentpage = 1; +if (isset($_POST['currentpage'])) { + $currentpage = (int) test_input($_POST["currentpage"]); +} + +$offset = (int) $currentpage * $entries - $entries; + +include ("../../views/adminpanel-page.php"); diff --git a/website/public/API/adminSearchUsers.php b/website/public/API/adminSearchUsers.php index c809db7..5f7944b 100644 --- a/website/public/API/adminSearchUsers.php +++ b/website/public/API/adminSearchUsers.php @@ -8,13 +8,11 @@ require_once ("../../queries/user.php"); require_once ("../../queries/group_page.php"); $offset = 0; -if (isset($_POST["n"])) { - $offset = (int) test_input($_POST["n"]); -} $entries = 20; -if (isset($_POST["m"])) { - $entries = (int) test_input($_POST["m"]); +if (isset($_POST["currentpage"])) { + $offset = (int) test_input($_POST["currentpage"]) * $entries - $entries; } + $search = ""; if (isset($_POST["search"])) { $search = test_input($_POST["search"]); @@ -35,6 +33,8 @@ if (isset($_POST['groupstatus'])) { $groupstatus = $_POST["groupstatus"]; } +$userinfo = getRoleByID($_SESSION['userID']); + if ($pagetype == "user") { include ("../../views/adminpanel-table.php"); } else if ($pagetype == "group") { diff --git a/website/public/API/loadFriendRequest.php b/website/public/API/loadFriendRequest.php index b99d2c3..02dedb3 100644 --- a/website/public/API/loadFriendRequest.php +++ b/website/public/API/loadFriendRequest.php @@ -4,5 +4,12 @@ session_start(); require_once ("../../queries/connect.php"); require_once ("../../queries/friendship.php"); +require_once ("../../queries/user.php"); -echo selectAllFriendRequests(); \ No newline at end of file +if (isset($_SESSION["userID"]) && + getRoleByID($_SESSION["userID"]) != 'frozen' && + getRoleByID($_SESSION["userID"]) != 'banned') { + echo selectAllFriendRequests(); +} else { + echo "[]"; +} diff --git a/website/public/API/loadFriends.php b/website/public/API/loadFriends.php index 38158c9..c5c8797 100644 --- a/website/public/API/loadFriends.php +++ b/website/public/API/loadFriends.php @@ -6,11 +6,15 @@ require_once ("../../queries/connect.php"); require_once ("../../queries/checkInput.php"); require_once ("../../queries/friendship.php"); -if (isset($_POST["limit"])) { - echo selectLimitedFriends($_SESSION["userID"], (int) test_input($_POST["limit"])); -} else if (isset($_GET["limit"])) { - echo selectLimitedFriends($_SESSION["userID"], (int) test_input($_GET["limit"])); +if (isset($_SESSION["userID"])) { + if (isset($_POST["limit"])) { + echo selectLimitedFriends($_SESSION["userID"], (int)test_input($_POST["limit"])); + } else if (isset($_GET["limit"])) { + echo selectLimitedFriends($_SESSION["userID"], (int)test_input($_GET["limit"])); + } else { + echo selectFriends($_SESSION["userID"]); + } } else { - echo selectFriends($_SESSION["userID"]); + echo "[]"; } diff --git a/website/public/API/postComment.php b/website/public/API/postComment.php index e1d7617..3864cc8 100644 --- a/website/public/API/postComment.php +++ b/website/public/API/postComment.php @@ -2,28 +2,36 @@ session_start(); -require("../../queries/post.php"); +require_once("../../queries/post.php"); require_once("../../queries/connect.php"); -require("../../queries/checkInput.php"); -print_r($_POST); -if ($_POST['button'] == 'reaction') { - if (empty($_POST['newcomment-content'])) { - echo 0; - } else { - if (makeComment($_POST['postID'], - $_SESSION['userID'], - test_input($_POST['newcomment-content']))) { +require_once("../../queries/checkInput.php"); +require_once("../../queries/user.php"); + + +if (isset($_SESSION["userID"]) && + getRoleByID($_SESSION["userID"]) != 'frozen' && + getRoleByID($_SESSION["userID"]) != 'banned') { + if ($_POST['button'] == 'reaction') { + if (empty($_POST['newcomment-content'])) { + echo 0; + } else { + if (makeComment($_POST['postID'], + $_SESSION['userID'], + test_input($_POST['newcomment-content']))) { + echo 1; + } else { + echo 0; + } + } + } else if ($_POST['button'] == 'nietslecht') { + if (makeNietSlecht($_POST["postID"], $_SESSION["userID"])) { echo 1; } else { echo 0; } - } -} else if ($_POST['button'] == 'nietslecht') { - if (makeNietSlecht($_POST["postID"], $_SESSION["userID"])) { - echo 1; } else { echo 0; } } else { - echo 0; + echo "frozen"; } \ No newline at end of file diff --git a/website/public/API/searchPageNumber.php b/website/public/API/searchPageNumber.php new file mode 100644 index 0000000..4a76516 --- /dev/null +++ b/website/public/API/searchPageNumber.php @@ -0,0 +1,41 @@ +fetchColumn(); +$group_count = countSomeGroups($search)->fetchColumn(); + +$filter = "all"; +if (isset($_POST['filter'])) { + $filter = test_input($_POST['filter']); +} + +$option = "user"; +if (isset($_POST['option'])) { + $option = test_input($_POST['option']); +} + +include ("../../views/searchPageNumber.php"); diff --git a/website/public/API/searchUsers.php b/website/public/API/searchUsers.php index 15b03ed..f431f88 100644 --- a/website/public/API/searchUsers.php +++ b/website/public/API/searchUsers.php @@ -8,13 +8,15 @@ require_once ("../../queries/friendship.php"); require_once ("../../queries/user.php"); $n = 0; -if (isset($_POST["n"])) { - $n = (int) test_input($_POST["n"]); -} $m = 20; -if (isset($_POST["m"])) { - $m = (int) test_input($_POST["m"]); + +$page = 1; +if (isset($_POST["user-pageselect"])) { + $page = (int) test_input($_POST['user-pageselect']); } + +$n = ($page - 1) * $m; + $search = ""; if (isset($_POST["search"])) { $search = test_input($_POST["search"]); diff --git a/website/public/API/sendMessage.php b/website/public/API/sendMessage.php index c5d47d1..2d0b092 100644 --- a/website/public/API/sendMessage.php +++ b/website/public/API/sendMessage.php @@ -4,14 +4,22 @@ session_start(); require_once("../../queries/connect.php"); require_once("../../queries/private_message.php"); require_once("../../queries/checkInput.php"); +require_once("../../queries/user.php"); -if (!empty(test_input($_POST["destination"])) && - !empty(test_input($_POST["content"]))) { - if (sendMessage(test_input($_POST["destination"]), test_input($_POST["content"]))) { - echo 1; +if (isset($_SESSION["userID"]) && + getRoleByID($_SESSION["userID"]) != 'frozen' && + getRoleByID($_SESSION["userID"]) != 'banned') { + if (!empty(test_input($_POST["destination"])) && + !empty(test_input($_POST["content"])) + ) { + if (sendMessage(test_input($_POST["destination"]), test_input($_POST["content"]))) { + echo 1; + } else { + echo 0; + } } else { echo 0; } } else { - echo 0; + echo "frozen"; } \ No newline at end of file diff --git a/website/public/admin.php b/website/public/admin.php index 2785606..ddcbbf2 100644 --- a/website/public/admin.php +++ b/website/public/admin.php @@ -8,7 +8,7 @@ - + fetch(PDO::FETCH_ASSOC); +$role = getRoleByID($_SESSION['userID']); -if ($userinfo['role'] != 'admin' AND $userinfo['role'] != 'owner') { +if ($role != 'admin' AND $role != 'owner') { header("location:profile.php"); } diff --git a/website/public/bits/friend-item.php b/website/public/bits/friend-item.php index a69d12a..40bc8a8 100644 --- a/website/public/bits/friend-item.php +++ b/website/public/bits/friend-item.php @@ -33,7 +33,7 @@ foreach($friends as $i => $friend) { } ?>'>
- PF + PF
fullname ?>
input, label").click(function(){ - adminSearch(); + $("#admin-filter, #admin-groupfilter > input, label").change(function(){ + searchFromOne(); }); $("#pagetype").change(function(){ - adminSearch(); + searchFromOne(); }); - adminSearch(); + /* Update hidden input to be equal to submit pressed, + because serialize doesn't take submit values. */ + $('#admin-batchform > button').click(function () { + $('#batchinput').prop('value', $(this).prop('value')); + console.log($('#batchinput').prop('value')); + }); + + $('#admin-groupbatchform > button').click(function () { + $('#groupbatchinput').prop('value', $(this).prop('value')); + console.log($('#batchinput').prop('value')); + }); }); -function checkAll(allbox) { - var checkboxes = document.getElementsByClassName('checkbox-list'); - - for (var i = 0; i < checkboxes.length; i++) { - if (checkboxes[i].type == 'checkbox') { - checkboxes[i].checked = allbox.checked; - } - } +function checkAll() { + $('.checkbox-list').each(function () { + $(this).prop('checked', $('#checkall').prop('checked')); + }); } -function checkCheckAll(allbox) { - var checkboxes = document.getElementsByClassName('checkbox-list'); +function checkCheckAll() { var checked = true; - for (var i = 0; i < checkboxes.length; i++) { - if (checkboxes[i].type == 'checkbox') { - if (checkboxes[i].checked == false) { - checked = false; - break; - } + $('.checkbox-list').each(function () { + if ($(this).prop('checked') == false) { + checked = false; + return; } - } - allbox.checked = checked; + }); + + $('#checkall').prop('checked', checked); } function changeFilter() { @@ -55,12 +61,28 @@ function changeFilter() { } } +function searchFromOne() { + $('#currentpage').prop('value', 1); + adminSearch(); +} + function adminSearch() { + console.log($("#admin-searchform").serialize()); $.post( "API/adminSearchUsers.php", $("#admin-searchform").serialize() ).done(function (data) { $("#usertable").html(data); + updatePageN(); + }) +} + +function adminUpdate(form) { + $.post( + "API/adminChangeUser.php", + $(form).serialize() + ).done(function () { + adminSearch(); }) } @@ -71,4 +93,18 @@ function updatePageN() { ).done(function (data) { $("#admin-pageinfo").html(data); }) +} + +function toggleBancomment(button) { + $(button).siblings("div").toggle(); + $(button).toggle(); +} + +function editComment(form) { + $.post( + "API/adminChangeUser.php", + $(form).serialize() + ).done(function (data) { + adminSearch(); + }); } \ No newline at end of file diff --git a/website/public/js/chat.js b/website/public/js/chat.js index e35f85c..1d70834 100644 --- a/website/public/js/chat.js +++ b/website/public/js/chat.js @@ -33,7 +33,11 @@ function sendMessage() { $.post( "API/sendMessage.php", $("#sendMessageForm").serialize() - ); + ).done(function(response) { + if (response == "frozen") { + alert("Je account is bevroren, dus je kan niet chat berichten versturen. Contacteer een admin als je denkt dat dit onjuist is."); + } + }); $("#newContent").val(""); loadMessages(); diff --git a/website/public/js/main.js b/website/public/js/main.js index d23bbbf..2983fdb 100644 --- a/website/public/js/main.js +++ b/website/public/js/main.js @@ -3,7 +3,7 @@ var months = ["januari", "februari", "maart", "april", "mei", "juni", "juli", "a function fancyText(text) { // Add links, images, gifs and (youtube) video's. - var regex = /(https?:\/\/.[^ ]*)/ig; + var regex = /(https?:\/\/.[^ <>"]*)/ig; text = text.replace(regex, function(link) { // Add images if (link.match(/(https?:\/\/.[^ ]*\.(?:png|jpg|jpeg|gif))/ig)) { @@ -93,4 +93,14 @@ function showGroups(groups, list) { } else { return false; } -} \ No newline at end of file +} + +$(document).ready(function() { + $("body").delegate("textarea[maxlength]", "keydown", function() { + if ($(this).val().length / .9 >= $(this).attr("maxlength")) { + $(this).next().text($(this).val().length + "/" + $(this).attr("maxlength")); + } else { + $(this).next().text(""); + } + }); +}); \ No newline at end of file diff --git a/website/public/js/masonry.js b/website/public/js/masonry.js index d73c33c..b4370b7 100644 --- a/website/public/js/masonry.js +++ b/website/public/js/masonry.js @@ -19,7 +19,7 @@ function requestPost(postID) { var scrollBarWidth = window.innerWidth - document.body.offsetWidth; scrollbarMargin(scrollBarWidth, 'hidden'); $('#modal-response').show(); - $('#modal-response').html(data); + $('#modal-response').html(fancyText(data)); }); } @@ -78,7 +78,7 @@ function masonry(mode) { * Initialise columns. */ var columns = new Array(columnCount); - var $columns = new Array(columnCount); + for (i = 0; i < columnCount; i++) { $column = $("
"); $column.width(100/columnCount + "%"); @@ -96,7 +96,7 @@ function masonry(mode) { } $form.append($("")); - $form.append($("")); $form.append($("")); columns[0][1].append($postInput); @@ -130,7 +130,7 @@ function masonry(mode) { $.each(posts, function() { $post = $("
"); $post.append($("

").html(this["title"])); - $post.append($("

").html(this["content"])); + $post.append($("

").html(fancyText(this["content"]))); $post.append($("

").text(this["nicetime"])); $post.append($("

").text("comments: " + this["comments"] + ", niet slechts: " + this["niet_slechts"])); diff --git a/website/public/js/post.js b/website/public/js/post.js index 4a8ebc7..27bc34e 100644 --- a/website/public/js/post.js +++ b/website/public/js/post.js @@ -4,8 +4,10 @@ function postComment(buttonValue) { $.post( "API/postComment.php", formData - ).done(function(data) { - console.log(data); + ).done(function (response) { + if (response == "frozen") { + alert("Je account is bevroren, dus je kan geen comments plaatsen of \"niet slechten\". Contacteer een admin als je denkt dat dit onjuist is."); + } }); $("#newcomment").val(""); @@ -15,6 +17,6 @@ function postComment(buttonValue) { "API/loadPost.php", $("#newcommentform").serialize() ).done(function (data) { - $('#modal-response').html(data); + $('#modal-response').html(fancyText(data)); }); } \ No newline at end of file diff --git a/website/public/js/search.js b/website/public/js/search.js index c026b64..f7c4bbe 100644 --- a/website/public/js/search.js +++ b/website/public/js/search.js @@ -1,12 +1,11 @@ -function searchUsers(n, m) { +$(window).on('load', function () { + pageNumber(); +}); + +function searchUsers() { $.post( "API/searchUsers.php", - { - n: n, - m: m, - search: $("#search-input").val(), - filter: $("#search-filter").val() - } + $('#search-form').serialize() ).done(function(data) { if (!showFriends(data, "#search-users-list", 0, "profile.php", "GET")) { $("#search-users-list").text("Niemand gevonden"); @@ -14,18 +13,29 @@ function searchUsers(n, m) { }); } -function searchGroups(n, m) { +function searchGroups() { $.post( "API/searchGroups.php", - { - n: n, - m: m, - search: $("#search-input").val(), - filter: $("#search-filter").val() - } + $('#search-form').serialize() ).done(function(data) { if (!showGroups(data, "#search-groups-list")) { $("#search-groups-list").text("Geen groepen gevonden"); } }); +} + +function pageNumber() { + var input = input2 = $('#search-form').serialize(); + $.post( + "API/searchPageNumber.php", + input + "&option=user" + ).done(function (data) { + $('#user-pageselect').html(data); + }); + $.post( + "API/searchPageNumber.php", + input2 + "&option=group" + ).done(function (data) { + $('#group-pageselect').html(data); + }); } \ No newline at end of file diff --git a/website/public/profile.php b/website/public/profile.php index 83b9d10..05c661d 100644 --- a/website/public/profile.php +++ b/website/public/profile.php @@ -13,10 +13,11 @@ = DATE_SUB(NOW(),INTERVAL 15 MINUTE) + WHEN TRUE THEN 'online' + WHEN FALSE THEN 'offline' + END AS `onlinestatus`, `role` FROM `user` @@ -28,11 +32,8 @@ function selectLimitedFriends($userID, $limit) { `friendship`.`user1ID` = `user`.`userID`) AND `user`.`role` != 'banned' AND `friendship`.`status` = 'confirmed' - ORDER BY - CASE - WHEN `friendship`.`user2ID` = `user`.`userID` THEN `friendship`.`chatLastVisted1` - WHEN `friendship`.`user1ID` = `user`.`userID` THEN `friendship`.`chatLastVisted2` - END + ORDER BY + `user`.`lastactivity` DESC LIMIT :limitCount "); diff --git a/website/queries/picture.php b/website/queries/picture.php new file mode 100644 index 0000000..8e99d9a --- /dev/null +++ b/website/queries/picture.php @@ -0,0 +1,138 @@ + 4000000) { + throw new AngryAlert("Bestand is te groot, maximaal 4MB toegestaan."); + } + $relativePath = $avatarDir . $_SESSION["userID"] . "_avatar.gif"; + $group ? removeOldGroupAvatar($_POST["groupID"]) : removeOldUserAvatar(); + move_uploaded_file($tmpImg, $publicDir . $relativePath); + } else { + $relativePath = $avatarDir . $_SESSION["userID"] . "_avatar.png"; + $scaledImg = scaleAvatar($tmpImg); + $group ? removeOldGroupAvatar($_POST["groupID"]) : removeOldUserAvatar(); + imagepng($scaledImg, $publicDir . $relativePath); + } + + $group ? setGroupAvatarToDatabase("../" . $relativePath, $_POST["groupID"]) : setUserAvatarToDatabase("../" . $relativePath); + throw new HappyAlert("Profielfoto veranderd."); +} + +/** + * Removes the old avatar from the uploads folder, for a user. + */ +function removeOldUserAvatar() { + $stmt = prepareQuery(" + SELECT + `profilepicture` + FROM + `user` + WHERE + `userID` = :userID + "); + $stmt->bindParam(":userID", $_SESSION["userID"]); + $stmt->execute(); + $old_avatar = $stmt->fetch()["profilepicture"]; + if ($old_avatar != NULL) { + unlink("/var/www/html/public/uploads/" . $old_avatar); + } +} +/** + * Removes the old avatar from the uploads folder, for a group. + * @param int $groupID + */ +function removeOldGroupAvatar(int $groupID) { + $stmt = prepareQuery(" + SELECT + `picture` + FROM + `group_page` + WHERE + groupID = :groupID + "); + $stmt->bindParam(":groupID", $groupID); + $stmt->execute(); + $old_avatar = $stmt->fetch()["picture"]; + if ($old_avatar != NULL) { + unlink("/var/www/html/public/uploads/" . $old_avatar); + } +} + +/** + * Inserts the the path to the avatar into the database, for Users. + * @param string $url path to the avatar + */ +function setUserAvatarToDatabase(string $url) { + $stmt = prepareQuery(" + UPDATE + `user` + SET + `profilepicture` = :avatar + WHERE + `userID` = :userID + "); + + $stmt->bindParam(":avatar", $url); + $stmt->bindParam(":userID", $_SESSION["userID"]); + $stmt->execute(); +} + +/** + * Inserts the the path to the avatar into the database, for Groups. + * @param string $url path to the avatar + * @param int $groupID + */ +function setGroupAvatarToDatabase(string $url, int $groupID) { + $stmt = prepareQuery(" + UPDATE + `group_page` + SET + `picture` = :avatar + WHERE + `groupID` = :groupID + "); + $stmt->bindParam(":avatar", $url); + $stmt->bindParam(":groupID", $groupID); + $stmt->execute(); +} + +/** + * Checks the resoluton of a picture. + * @param string $img + * @throws AngryAlert + */ +function checkAvatarSize(string $img) { + $minResolution = 200; + $imgSize = getimagesize($img); + if ($imgSize[0] < $minResolution or $imgSize[1] < $minResolution) { + throw new AngryAlert("Afbeelding te klein, minimaal 200x200 pixels."); + } +} + +/** + * Scales a picture, standard width is 600px. + * @param string $imgLink Path to a image file + * @param int $newWidth Custom image width. + * @return bool|resource Returns the image as an Resource. + * @throws AngryAlert + */ +function scaleAvatar(string $imgLink, int $newWidth = 600) { + $img = imagecreatefromstring(file_get_contents($imgLink)); + if ($img) { + return imagescale($img, $newWidth); + } else { + throw new AngryAlert("Afbeelding wordt niet ondersteund."); + } +} \ No newline at end of file diff --git a/website/queries/private_message.php b/website/queries/private_message.php index 430fddb..4ac04a7 100644 --- a/website/queries/private_message.php +++ b/website/queries/private_message.php @@ -16,6 +16,8 @@ function getOldChatMessages($user2ID) { `destination` = :user1 ORDER BY `creationdate` ASC + LIMIT + 100 "); $stmt->bindParam(":user1", $user1ID); diff --git a/website/queries/settings.php b/website/queries/settings.php index bdc9d38..03f794f 100644 --- a/website/queries/settings.php +++ b/website/queries/settings.php @@ -1,49 +1,7 @@ 4000000) { - throw new AngryAlert("Bestand is te groot, maximaal 4MB toegestaan."); - } - $relativePath = "uploads/profilepictures/" . $_SESSION["userID"] . "_avatar.gif"; - move_uploaded_file($tmpImg, $profilePictureDir . $relativePath); - } else { - $relativePath = "uploads/profilepictures/" . $_SESSION["userID"] . "_avatar.png"; - $scaledImg = scaleAvatar($tmpImg); - imagepng($scaledImg, $profilePictureDir . $relativePath); - } - removeOldAvatar(); - setAvatarToDatabase("../" . $relativePath); - throw new HappyAlert("Profielfoto veranderd."); -} - -function removeOldAvatar() { - $stmt = prepareQuery(" - SELECT - `profilepicture` - FROM - `user` - WHERE - `userID` = :userID - "); - $stmt->bindParam(":userID", $_SESSION["userID"]); - $stmt->execute(); - $old_avatar = $stmt->fetch()["profilepicture"]; - if ($old_avatar != NULL) { - unlink("/var/www/html/public/uploads/" . $old_avatar); - } -} - -function setAvatarToDatabase(string $url) { - $stmt = prepareQuery(" - UPDATE - `user` - SET - `profilepicture` = :avatar - WHERE - `userID` = :userID - "); - - $stmt->bindParam(":avatar", $url); - $stmt->bindParam(":userID", $_SESSION["userID"]); - $stmt->execute(); -} - -function checkAvatarSize(string $img) { - $minResolution = 200; - $imgSize = getimagesize($img); - if ($imgSize[0] < $minResolution or $imgSize[1] < $minResolution) { - throw new AngryAlert("Afbeelding te klein, minimaal 200x200 pixels."); - } -} - -function scaleAvatar(string $imgLink, int $newWidth = 600) { - $img = imagecreatefromstring(file_get_contents($imgLink)); - if ($img) { - return imagescale($img, $newWidth); - } else { - throw new AngryAlert("Afbeelding wordt niet ondersteund."); - } } \ No newline at end of file diff --git a/website/queries/user.php b/website/queries/user.php index 26cf4e8..e712a6c 100644 --- a/website/queries/user.php +++ b/website/queries/user.php @@ -2,6 +2,19 @@ require_once ("connect.php"); +function updateLastActivity() { + $stmt = prepareQuery(" + UPDATE + `user` + SET + `lastactivity` = NOW() + WHERE + `userID` = :userID + "); + $stmt->bindParam(":userID", $_SESSION["userID"]); + return $stmt->execute(); +} + function getUserID($username) { $stmt = prepareQuery(" SELECT @@ -265,6 +278,25 @@ function changeMultipleUserStatusByID($ids, $status) { return $q; } +function changeMultipleUserStatusByIDAdmin($ids, $status) { + $q = prepareQuery(" + UPDATE + `user` + SET + `role` = :status + WHERE + FIND_IN_SET (`userID`, :ids) + AND NOT `role` = 'admin' + AND NOT `role` = 'owner' + "); + + $ids = implode(',', $ids); + $q->bindParam(':ids', $ids); + $q->bindParam(':status', $status); + $q->execute(); + return $q; +} + function selectRandomNotFriendUser($userID) { $stmt = prepareQuery(" SELECT @@ -335,9 +367,10 @@ function countSomeUsers($search) { FROM `user` WHERE - `username` LIKE :keyword OR + (`username` LIKE :keyword OR `fname` LIKE :keyword OR - `lname` LIKE :keyword + `lname` LIKE :keyword) AND + `role` != 'banned' ORDER BY `fname`, `lname`, @@ -362,5 +395,20 @@ function getRoleByID($userID) { $stmt->bindParam(':userID', $userID); $stmt->execute(); - return $stmt; + return $stmt->fetch()["role"]; +} + +function editBanCommentByID($userID, $comment) { + $stmt = prepareQuery(" + UPDATE + `user` + SET + `bancomment` = :comment + WHERE + `userID` = :userID + "); + + $stmt->bindParam(':userID', $userID, PDO::PARAM_INT); + $stmt->bindParam(':comment', $comment); + $stmt->execute(); } \ No newline at end of file diff --git a/website/views/adminpanel-grouptable.php b/website/views/adminpanel-grouptable.php index 4999666..9d2c8e8 100644 --- a/website/views/adminpanel-grouptable.php +++ b/website/views/adminpanel-grouptable.php @@ -16,7 +16,6 @@ while ($group = $q->fetch(PDO::FETCH_ASSOC)) { $name = $group['name']; $role = $group['status']; $description = $group['description']; - $function = "checkCheckAll(document.getElementById('checkall'))"; echo(" @@ -25,15 +24,14 @@ while ($group = $q->fetch(PDO::FETCH_ASSOC)) { class='checkbox-list' value='$groupID' form='admin-groupbatchform' - onchange='$function'> + onchange='checkCheckAll();'> $name $role $description

+ onsubmit=\"adminUpdate(this); return false;\"> - $i"; - } else { - echo ""; - } +Pagina: + -
+ } + ?> + \ No newline at end of file diff --git a/website/views/adminpanel-table.php b/website/views/adminpanel-table.php index a21c9d6..aa790e6 100644 --- a/website/views/adminpanel-table.php +++ b/website/views/adminpanel-table.php @@ -1,5 +1,5 @@ - + Gebruikersnaam Status Aantekening @@ -14,7 +14,6 @@ while($user = $q->fetch(PDO::FETCH_ASSOC)) { $username = $user['username']; $role = $user['role']; $bancomment = $user['bancomment']; - $function = "checkCheckAll(document.getElementById('checkall'))"; echo(" @@ -24,20 +23,47 @@ while($user = $q->fetch(PDO::FETCH_ASSOC)) { class='checkbox-list' value='$userID' form='admin-batchform' - onchange='$function'> + onchange='checkCheckAll();'> $username $role - $bancomment + +
$bancomment
+
+
+ + + +
+
+ +
- + onsubmit=\"adminUpdate(this); return false;\"> +
diff --git a/website/views/adminpanel.php b/website/views/adminpanel.php index c48a28d..a4da648 100644 --- a/website/views/adminpanel.php +++ b/website/views/adminpanel.php @@ -2,11 +2,10 @@
@@ -39,7 +31,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
diff --git a/website/views/notification-center.php b/website/views/notification-center.php index 7630b75..7bd03ea 100644 --- a/website/views/notification-center.php +++ b/website/views/notification-center.php @@ -7,9 +7,9 @@ include_once ("../queries/user.php"); // auth - $userinfo = getRoleByID($_SESSION['userID'])->fetch(PDO::FETCH_ASSOC); + $role = getRoleByID($_SESSION['userID']); - if ($userinfo['role'] == 'admin' OR $userinfo['role'] == 'owner') { + if ($role == 'admin' OR $role == 'owner') { echo ""; echo ""; } diff --git a/website/views/post-view.php b/website/views/post-view.php index 264d67c..d961334 100644 --- a/website/views/post-view.php +++ b/website/views/post-view.php @@ -24,7 +24,7 @@ echo("
-
+
@@ -29,7 +29,7 @@

Informatie

    -
  • Geboren op:
  • +
  • Leeftijd: jaar
  • Locatie:
  • Lid sinds:
diff --git a/website/views/search-view.php b/website/views/search-view.php index 392ea45..e42f985 100644 --- a/website/views/search-view.php +++ b/website/views/search-view.php @@ -21,10 +21,8 @@ if (isset($_GET['filter'])) { } $user_n = ($user_currentpage - 1) * $user_perpage; -$user_count = countSomeUsers($search)->fetchColumn(); $group_n = ($group_currentpage - 1) * $group_perpage; -$group_count = countSomeGroups($search)->fetchColumn(); ?>
@@ -40,8 +38,10 @@ $group_count = countSomeGroups($search)->fetchColumn(); id="search-input" name="search" onkeyup=" - searchUsers(, ); - searchGroups(, );" + $('#user-pagenumber, #group-pagenumber').prop('value', 1); + searchUsers(); + searchGroups(); + pageNumber();" placeholder="Zoek" value= > @@ -66,26 +66,12 @@ $group_count = countSomeGroups($search)->fetchColumn();

Gebruikers

- +
@@ -94,26 +80,12 @@ $group_count = countSomeGroups($search)->fetchColumn();

Groepen

- +
diff --git a/website/views/searchPageNumber.php b/website/views/searchPageNumber.php new file mode 100644 index 0000000..b98d4ef --- /dev/null +++ b/website/views/searchPageNumber.php @@ -0,0 +1,36 @@ +"; + + for ($i=1; $i <= ceil($user_count / $user_perpage); $i++) { + if ($user_currentpage == $i) { + echo ""; + } else { + echo ""; + } + } + + echo ""; +} else { + echo ""; +} + +?> diff --git a/website/views/settings-view.php b/website/views/settings-view.php index b7f554a..e3cfd36 100644 --- a/website/views/settings-view.php +++ b/website/views/settings-view.php @@ -75,6 +75,9 @@ $settings = getSettings(); +
  • @@ -99,7 +102,8 @@ $settings = getSettings(); rows="5" title="bio" id="bio" - > + maxlength="1000" + >