diff --git a/inc/config.php b/inc/config.php index 275291b9..a86ae756 100644 --- a/inc/config.php +++ b/inc/config.php @@ -1433,6 +1433,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 91abe7e6..9603afac 100644 --- a/post.php +++ b/post.php @@ -52,10 +52,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']))); }