diff options
| author | Michael Save <savetheinternet@tinyboard.org> | 2012-05-07 18:22:20 +1000 |
|---|---|---|
| committer | Michael Save <savetheinternet@tinyboard.org> | 2012-05-07 18:22:20 +1000 |
| commit | 890b541191286a7ce0d62df86fef37cf86abb1a8 (patch) | |
| tree | 9afc985f6a3104bd7cb663d6ad92e9c004d48b9d | |
| parent | e132e4c2b3dc62c2ddb6bdbcc562e67fa61c9fa8 (diff) | |
custom capcode permissions
| -rw-r--r-- | inc/config.php | 15 | ||||
| -rw-r--r-- | post.php | 22 |
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. @@ -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']); |
