diff --git a/application/controllers/Posts.php b/application/controllers/Posts.php index 5082021..8edcd6e 100644 --- a/application/controllers/Posts.php +++ b/application/controllers/Posts.php @@ -211,6 +211,39 @@ exit; } + if($post[0]['user_id'] != $_SESSION['user']['ID']) { + echo json_encode(['success' => false, 'message' => 'Du kannst keine Posts löschen, die dir nicht gehören.']); + exit; + } + $post = $this->PostsModel->preparePostList($post); + $body = $this->load->view('network/posts/delete_modal', ['post' => $post[0]], true); + + echo json_encode(['success' => true, 'title' => 'Post löschen', 'body' => $body]); + } + + public function deletePost() { + header('Content-Type: application/json'); + if(!isset($_SESSION['user'])) { + echo json_encode(['success' => false, 'message' => 'Du musst eingeloggt sein, um die Posts deines Accounts zu löschen']); + exit; + } + + $uuid = $this->input->post('uuid'); + $post = $this->PostsModel->getPostByUUID($uuid); + + if(empty($post)) { + echo json_encode(['success' => false, 'message' => 'Der angegebene Post existiert nicht.']); + exit; + } + + if($post[0]['user_id'] != $_SESSION['user']['ID']) { + echo json_encode(['success' => false, 'message' => 'Du kannst keine Posts löschen, die dir nicht gehören.']); + exit; + } + + $this->PostsModel->deletePost($_SESSION['user']['ID'], $uuid); + + echo json_encode(['success' => true, 'message' => 'Der Post wurde erfolgreich gelöscht.']); } } \ No newline at end of file diff --git a/application/controllers/User.php b/application/controllers/User.php index f370d5d..e2d5426 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -210,14 +210,13 @@ Bitte erstelle dir entweder kostenlos einen neuen Account oder - melde dich an. + melde dich an + . input->post('postMedia')); - $content = $this->input->post('content'); if (strlen($content) >= 10000) { ?> @@ -247,23 +246,25 @@ } $media = $this->input->post('postMedia'); - foreach ($media as $entry) { - $image = str_replace(' ', '+', $entry['image']); - $image = substr($image, strpos($image, ',') + 1); - $image = base64_decode($image); + if (!empty($media)) { + foreach ($media as $entry) { + $image = str_replace(' ', '+', $entry['image']); + $image = substr($image, strpos($image, ',') + 1); + $image = base64_decode($image); - $fileUrl = $this->FileModel->uploadFileByContent($image, $entry['name'], $entry['type'], $entry['size']); + $fileUrl = $this->FileModel->uploadFileByContent($image, $entry['name'], $entry['type'], $entry['size']); - $this->PostsModel->addImageToPost($postID, $fileUrl); + $this->PostsModel->addImageToPost($postID, $fileUrl); + } + + ?> + + - - db->query('SELECT ID FROM user_posts WHERE user_id = ? AND uuid = ?', [$userID, $uuid])->result_array()[0]['ID']; + $this->db->query('DELETE FROM user_posts WHERE user_id = ? AND uuid = ?', [$userID, $uuid]); + $this->db->query('DELETE FROM user_posts_hashtags WHERE postID = ?', [$postID]); + $this->db->query('DELETE FROM user_posts_mentions WHERE postID = ?', [$postID]); + $this->db->query('DELETE FROM user_posts_likes WHERE postID = ?', [$postID]); + $this->db->query('DELETE FROM user_posts_media WHERE postID = ?', [$postID]); + } + public function addImageToPost($postID, $imageUrl) { $this->db->query('INSERT INTO user_posts_media (postID, mediaType, mediaUrl) VALUES (?, ?, ?)', [$postID, 'image', $imageUrl]); } @@ -284,7 +293,9 @@ } public function getPostByUUID($uuid) { + $this->db->cache_off(); $result = $this->db->query('SELECT * FROM user_posts WHERE uuid = ?', [$uuid])->result_array(); + $this->db->cache_on(); return $result; } diff --git a/application/views/network/posts/delete_modal.php b/application/views/network/posts/delete_modal.php new file mode 100644 index 0000000..d70dcdf --- /dev/null +++ b/application/views/network/posts/delete_modal.php @@ -0,0 +1,21 @@ + + +
+ + + +
diff --git a/application/views/network/posts/post_item.php b/application/views/network/posts/post_item.php index f09af43..74f8061 100644 --- a/application/views/network/posts/post_item.php +++ b/application/views/network/posts/post_item.php @@ -43,39 +43,41 @@ -
- - - - - - - - -
diff --git a/assets/js/blog-edit.js b/assets/js/blog-edit.js index 864774c..5f85b15 100644 --- a/assets/js/blog-edit.js +++ b/assets/js/blog-edit.js @@ -166,7 +166,7 @@ $('span').keyup(function (e) { let tagsList = []; $(function () { $.ajax({ - url: 'http://192.168.178.39/admin/blog/tagsList', + url: '/admin/blog/tagsList', method: 'GET', success: function (data) { console.log(data); @@ -222,7 +222,7 @@ $(function () { function getPostData() { const postID = $('#postID').val(); $.ajax({ - url: 'http://192.168.178.39/admin/blog/getPost', + url: '/admin/blog/getPost', method: 'post', data: { postID @@ -255,7 +255,7 @@ function getContentData() { const contentID = $('#contentID').val(); const lang = $('#postLanguage').val(); $.ajax({ - url: 'http://192.168.178.39/admin/blog/getContent', + url: '/admin/blog/getContent', method: 'post', data: { postID, contentID, lang @@ -275,7 +275,7 @@ function getTranslationData() { const translationID = $('#translationID').val(); const lang = $('#postLanguage').val(); $.ajax({ - url: 'http://192.168.178.39/admin/blog/getTranslationData', + url: '/admin/blog/getTranslationData', method: 'post', data: { postID, translationID, lang @@ -294,7 +294,7 @@ function getTranslationData() { function getPostTags() { const postID = $('#postID').val(); $.ajax({ - url: 'http://192.168.178.39/admin/blog/getPostTags', + url: '/admin/blog/getPostTags', method: 'POST', data: { postID @@ -367,7 +367,7 @@ function sendPost(executionFinished) { postTags = $('#postTags').tagsinput('items'); $.ajax({ - url: 'http://192.168.178.39/admin/blog/sendEdit', + url: '/admin/blog/sendEdit', method: 'post', data: { postID, @@ -413,7 +413,7 @@ function publishPost() { contentFR = $('#switchLanguages').find('> li[data-lang=fr]').data('contentid'); $.ajax({ - url: 'http://192.168.178.39/admin/blog/publishPost', + url: '/admin/blog/publishPost', method: 'post', data: { postID, contentID, @@ -460,7 +460,7 @@ $('.upload-btn').on('change', '.upload-image', function () { $('.img-container').css('background-image', 'url(' + reader.result + ')'); $.ajax({ - url: 'http://192.168.178.39/admin/files/uploadImage', + url: '/admin/files/uploadImage', type: 'POST', data: { image: reader.result, diff --git a/assets/js/blog.js b/assets/js/blog.js index cc3bbf3..9c84e45 100644 --- a/assets/js/blog.js +++ b/assets/js/blog.js @@ -1,6 +1,6 @@ $(document).ready(function () { $.ajax({ - url: "http://192.168.178.39/blog/getComments", + url: "/blog/getComments", data: { url: window.location.pathname }, @@ -33,7 +33,7 @@ var addComment = function () { var item; $.ajax({ - url: "http://192.168.178.39/blog/comment", + url: "/blog/comment", method: 'POST', data: { url: window.location.pathname, @@ -117,7 +117,7 @@ function wait(ms) { function likeDislike(postID) { $.ajax({ type: "POST", - url: "http://192.168.178.39/blog/like", + url: "/blog/like", data: { postID: postID }, diff --git a/assets/js/csgo.js b/assets/js/csgo.js index eb87e32..e14d1d4 100644 --- a/assets/js/csgo.js +++ b/assets/js/csgo.js @@ -2,7 +2,7 @@ let bar = new Nanobar(); function loadPlayer() { $.ajax({ - url: 'http://192.168.178.39/tools/csgo/data/' + $('#player-id').text(), + url: '/tools/csgo/data/' + $('#player-id').text(), method: 'GET', success: function (result) { console.log(result); @@ -113,7 +113,7 @@ $(window).keydown(function (event) { function defaultPage() { $.ajax({ - url: 'http://192.168.178.39/tools/csgo/getDefaultPage/' + $('#player-id').text(), + url: '/tools/csgo/getDefaultPage/' + $('#player-id').text(), method: 'GET', success: function (data) { bar.go(40); diff --git a/assets/js/custom.js b/assets/js/custom.js index 05eabf7..28b4c09 100644 --- a/assets/js/custom.js +++ b/assets/js/custom.js @@ -244,7 +244,7 @@ $('#new-category-submit').click(function () { var name = $('input[name=new-category-name]').val(); var display_name = $('input[name=new-category-display-name]').val(); $.ajax({ - url: "http://192.168.178.39/admin/blog/new_category", + url: "/admin/blog/new_category", type: "POST", data: { name: name, @@ -380,7 +380,7 @@ $('#tags-input').keypress(function (event) { var deletePost = function (id) { var row = $("#post-" + id); $.ajax({ - url: "http://192.168.178.39/admin/blog/delete", + url: "/admin/blog/delete", data: { id: id }, @@ -434,16 +434,16 @@ $('#deleteModal').on('show.bs.modal', function (event) { removeButton.removeAttr('disabled'); switch (type) { case "Blog-Post": - removeButton.attr('onclick', 'deletePostFinally(' + id + ', "http://192.168.178.39/admin/blog/deleteFinally", "post")'); + removeButton.attr('onclick', 'deletePostFinally(' + id + ', "/admin/blog/deleteFinally", "post")'); break; case "Projekt": - removeButton.attr('onclick', 'deletePostFinally(' + id + ', "http://192.168.178.39/admin/projects/delete", "entry")'); + removeButton.attr('onclick', 'deletePostFinally(' + id + ', "/admin/projects/delete", "entry")'); break; case "Projekt-Kategorie": - removeButton.attr('onclick', 'deletePostFinally(' + id + ', "http://192.168.178.39/admin/projects/delete_category", "category")'); + removeButton.attr('onclick', 'deletePostFinally(' + id + ', "/admin/projects/delete_category", "category")'); break; case "Datei": - removeButton.attr('onclick', 'deletePostFinally(' + id + ', "http://192.168.178.39/admin/files/delete", "file")'); + removeButton.attr('onclick', 'deletePostFinally(' + id + ', "/admin/files/delete", "file")'); break; } removeButton.css('cursor', 'pointer'); @@ -502,7 +502,7 @@ function deletePostFinally(id, url, selector) { function restorePost(id) { var row = $("#post-" + id); $.ajax({ - url: "http://192.168.178.39/admin/blog/restore", + url: "/admin/blog/restore", data: { id: id }, @@ -595,7 +595,7 @@ $(".table").DataTable({ function loadNotificationsAsync() { $.ajax({ - url: 'http://192.168.178.39/Main/getNotifications', + url: '/Main/getNotifications', method: 'post', success: (data) => { console.log(data); diff --git a/assets/js/download.js b/assets/js/download.js index af8d780..fd17ee3 100644 --- a/assets/js/download.js +++ b/assets/js/download.js @@ -25,7 +25,7 @@ function activateDownloadSlider() { var loadDownloadInfo = function (id) { $.ajax({ - url: 'http://192.168.178.39/downloads/getDownload', + url: '/downloads/getDownload', data: { id: id }, diff --git a/assets/js/feedback.js b/assets/js/feedback.js index 1139c4c..8c0c1a5 100644 --- a/assets/js/feedback.js +++ b/assets/js/feedback.js @@ -28,7 +28,7 @@ $('#statusModal').on('show.bs.modal', (e) => { function archiveFeedback(id) { const row = $('#entry-' + id); $.ajax({ - url: 'http://192.168.178.39/admin/feedback/archive', + url: '/admin/feedback/archive', method: 'post', data: { id diff --git a/assets/js/home.js b/assets/js/home.js index 296df0f..ccc1e0f 100644 --- a/assets/js/home.js +++ b/assets/js/home.js @@ -37,7 +37,7 @@ $(document).ready(function () { function loadPosts(onLoad) { // const category = $('#social-post-container .sort-list-filter > li > a.active').attr('data-filter'); $.ajax({ - url: "http://192.168.178.39/main/getPosts", + url: "/main/getPosts", data: { amount: amount, offset: offset, diff --git a/assets/js/login.js b/assets/js/login.js index 385f8a6..c8b5a05 100644 --- a/assets/js/login.js +++ b/assets/js/login.js @@ -232,7 +232,7 @@ $(document).ready(function () { } else { var loginname = $('#loginname').val(); $.ajax({ - url: 'http://192.168.178.39/login/forget', + url: '/login/forget', method: 'POST', data: { username: loginname @@ -278,7 +278,7 @@ $(document).ready(function () { function registerAccount(username, email, password, passwordRepeat) { $.ajax({ - url: "http://192.168.178.39/login/register", + url: "/login/register", method: "POST", data: { username: username, diff --git a/assets/js/main.js b/assets/js/main.js index 429d054..6ceec40 100644 --- a/assets/js/main.js +++ b/assets/js/main.js @@ -3,7 +3,7 @@ setInterval(function () { }, 60000); function stillAlive() { - $.get('http://192.168.178.39/Main/stillAlive'); + $.get('/Main/stillAlive'); } jQuery(function ($) { @@ -106,7 +106,7 @@ function sendFeedback() { $('#feedbackModal #message').addClass('has-error'); } else { $.ajax({ - url: "http://192.168.178.39/Main/addFeedback", + url: "/Main/addFeedback", method: "POST", data: { message: message, @@ -135,7 +135,7 @@ function sendContactMessage() { $('#contactModal .modal-body').append(''); $('#contactModalSend').button('loading'); $.ajax({ - url: "http://192.168.178.39/Main/contactTeam", + url: "/Main/contactTeam", method: "POST", data: { message: message, @@ -285,7 +285,7 @@ function addReadMoreBtns() { $('#notificationMenuButton').click(() => { $.ajax({ - url: 'http://192.168.178.39/Main/notificationsRead', + url: '/Main/notificationsRead', method: 'post', success: (data) => { if (data.success) { @@ -298,7 +298,7 @@ $('#notificationMenuButton').click(() => { function loadNotificationsAsync() { $.ajax({ - url: 'http://192.168.178.39/Main/getNotifications', + url: '/Main/getNotifications', method: 'POST', beforeSend: () => { $('#notificationMenu').prepend('
'); diff --git a/assets/js/nickname.js b/assets/js/nickname.js index 86bd27d..2f61ecc 100644 --- a/assets/js/nickname.js +++ b/assets/js/nickname.js @@ -30,7 +30,7 @@ function generateNickname() { $.ajax( { - url: "http://192.168.178.39/tools/generators/nickname_functions", + url: "/tools/generators/nickname_functions", cache: false, dataType: 'text', data: { diff --git a/assets/js/post-create.js b/assets/js/post-create.js index 4026189..6a086c6 100644 --- a/assets/js/post-create.js +++ b/assets/js/post-create.js @@ -176,7 +176,7 @@ function submitPost(content, replyTo) { } $.ajax({ - url: "http://192.168.178.39/user/publishPost", + url: "/user/publishPost", method: 'POST', data: { content, diff --git a/assets/js/post-item.js b/assets/js/post-item.js index b6b9283..a72dc72 100644 --- a/assets/js/post-item.js +++ b/assets/js/post-item.js @@ -5,7 +5,7 @@ function showFullPost(uuid, username) { defaultUrl += window.location.search; $.ajax({ - url: "http://192.168.178.39/user/single_post_data/" + username + "/" + uuid, + url: "/user/single_post_data/" + username + "/" + uuid, beforeSend: () => { const origin = encodeURI(btoa(window.location.href)); window.history.pushState('', '', '/user/' + username + '/post/' + uuid + '?o=' + origin); @@ -113,7 +113,7 @@ function addPostLike(el) { const text = $('span', el); const likeCount = parseInt(text.text()); $.ajax({ - url: 'http://192.168.178.39/posts/addPostLike', + url: '/posts/addPostLike', method: 'post', data: { postUUID: uuid @@ -196,7 +196,7 @@ function openPostReportModal(uuid) { function loadPostReportModal(uuid) { $.ajax({ - url: 'http://192.168.178.39/posts/getReportModal', + url: '/posts/getReportModal', data: { uuid }, @@ -218,7 +218,7 @@ function loadPostReportModal(uuid) { function submitReportForm(postUuid, reportReason, reportText) { $.ajax({ - url: 'http://192.168.178.39/posts/reportPost', + url: '/posts/reportPost', data: { uuid: postUuid, reason: reportReason, @@ -252,7 +252,7 @@ function submitReportForm(postUuid, reportReason, reportText) { function openDeletePostModal(uuid) { $('body').append(`