summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/config.php15
-rw-r--r--post.php22
2 files changed, 30 insertions, 7 deletions
diff --git a/inc/config.php b/inc/config.php
index baa1d022..9efc4b02 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -870,7 +870,20 @@
* Mod permissions
* ====================
*/
-
+
+ // Capcode permissions
+ $config['mod']['capcode'] = array(
+ // JANITOR => array('Janitor'),
+ MOD => array('Mod'),
+ ADMIN => true
+ );
+
+ // Example: Allow mods to post with "## Moderator" as well
+ // $config['mod']['capcode'][MOD][] = 'Moderator';
+
+ // Example: Allow janitors to post with any capcode
+ // $config['mod']['capcode'][JANITOR] = true;
+
// Set any of the below to "DISABLED" to make them unavailable for everyone.
// Don't worry about per-board moderators. Let all mods moderate any board.
diff --git a/post.php b/post.php
index b4a256a5..11465a6e 100644
--- a/post.php
+++ b/post.php
@@ -310,13 +310,23 @@ if (isset($_POST['delete'])) {
)));
}
- if ($mod && $mod['type'] >= MOD && preg_match('/^((.+) )?## (.+)$/', $post['name'], $match)) {
- if (($mod['type'] == MOD && $match[3] == 'Mod') || $mod['type'] >= ADMIN) {
- $post['capcode'] = utf8tohtml($match[3]);
- $post['name'] = $match[2] != '' ? $match[2] : $config['anonymous'];
+
+ $post['capcode'] = false;
+
+ if ($mod && preg_match('/^((.+) )?## (.+)$/', $post['name'], $matches)) {
+ $name = $matches[2] != '' ? $matches[2] : $config['anonymous'];
+ $cap = $matches[3];
+
+ if (isset($config['mod']['capcode'][$mod['type']])) {
+ if ( $config['mod']['capcode'][$mod['type']] === true ||
+ (is_array($config['mod']['capcode'][$mod['type']]) &&
+ in_array($cap, $config['mod']['capcode'][$mod['type']])
+ )) {
+
+ $post['capcode'] = utf8tohtml($cap);
+ $post['name'] = $name;
+ }
}
- } else {
- $post['capcode'] = false;
}
$trip = generate_tripcode($post['name']);