diff --git a/inc/config.php b/inc/config.php index 7ff0ec7d..da4eff4c 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1440,6 +1440,9 @@ // 'db', // ); + // Allow OP to remove arbitrary posts in his thread + $config['user_moderation'] = false; + /* * ==================== * Public post search diff --git a/post.php b/post.php index 43d52674..ca6081f7 100644 --- a/post.php +++ b/post.php @@ -56,10 +56,19 @@ if (isset($_POST['delete'])) { $query->execute() or error(db_error($query)); if ($post = $query->fetch(PDO::FETCH_ASSOC)) { - if ($password != '' && $post['password'] != $password) + $thread = false; + if ($config['user_moderation'] && $post['thread']) { + $thread_query = prepare(sprintf("SELECT `time`,`password` FROM ``posts_%s`` WHERE `id` = :id", $board['uri'])); + $thread_query->bindValue(':id', $post['thread'], PDO::PARAM_INT); + $thread_query->execute() or error(db_error($query)); + + $thread = $thread_query->fetch(PDO::FETCH_ASSOC); + } + + if ($password != '' && $post['password'] != $password && (!$thread || $thread['password'] != $password)) error($config['error']['invalidpassword']); - if ($post['time'] > time() - $config['delete_time']) { + if ($post['time'] > time() - $config['delete_time'] && (!$thread || $thread['password'] != $password)) { error(sprintf($config['error']['delete_too_soon'], until($post['time'] + $config['delete_time']))); }