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)