summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/config.php2
-rw-r--r--post.php13
2 files changed, 11 insertions, 4 deletions
diff --git a/inc/config.php b/inc/config.php
index 26607d25..ec697f79 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -189,6 +189,8 @@
define('MOD_STICKY', MOD_MOD, true);
// Lock a thread
define('MOD_LOCK', MOD_MOD, true);
+ // Post in a locked thread
+ define('MOD_POSTINLOCKED', MOD_MOD, true);
/* Administration */
// Display the contents of instant-config.php
diff --git a/post.php b/post.php
index 452aa054..f76b2c73 100644
--- a/post.php
+++ b/post.php
@@ -69,10 +69,7 @@
//Check if thread exists
if(!$OP && !threadExists($post['thread']))
error(ERROR_NONEXISTANT);
-
- if(!$OP && threadLocked($post['thread']))
- error(ERROR_LOCKED);
-
+
// Check for a file
if($OP) {
if(!isset($_FILES['file']['tmp_name']) || empty($_FILES['file']['tmp_name']))
@@ -102,6 +99,14 @@
if($post['locked'] && $mod['type'] < MOD_LOCK) error(ERROR_NOACCESS);
}
+ // Check if thread is locked
+ // but allow mods to post
+ if(!$OP && threadLocked($post['thread'])) {
+ if(!$mod || $mod['type'] < MOD_POSTINLOCKED) {
+ error(ERROR_LOCKED);
+ }
+ }
+
if($post['has_file']) {
$size = $_FILES['file']['size'];
if($size > MAX_FILESIZE)