summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--inc/config.php2
-rw-r--r--inc/mod.php7
-rw-r--r--install.php1
-rw-r--r--install.sql4
-rw-r--r--mod.php94
5 files changed, 63 insertions, 45 deletions
diff --git a/inc/config.php b/inc/config.php
index ca3aec91..03571a92 100644
--- a/inc/config.php
+++ b/inc/config.php
@@ -371,7 +371,7 @@
// What level of administration you need to:
// Don't worry about per-board moderators. Let all mods moderate any board.
- $config['mod']['skip_per_board'] = true;
+ $config['mod']['skip_per_board'] = true;
/* Post Controls */
// View IP addresses
diff --git a/inc/mod.php b/inc/mod.php
index 3b85d50a..a764cfbc 100644
--- a/inc/mod.php
+++ b/inc/mod.php
@@ -24,8 +24,11 @@
if(isset($action) && $mod['type'] < $action)
return false;
-
- if(isset($board) && !$config['mod']['skip_per_board'] && !in_array($board, $mod['boards']))
+
+ if(!isset($board))
+ return true;
+
+ if(!$config['mod']['skip_per_board'] && !in_array('*', $mod['boards']) && !in_array($board, $mod['boards']))
return false;
return true;
diff --git a/install.php b/install.php
index d9aafd2f..8f91f6f0 100644
--- a/install.php
+++ b/install.php
@@ -75,6 +75,7 @@
query("ALTER TABLE `theme_settings` DROP INDEX `name`") or error(db_error());
case 'v0.9.3-dev-1':
query("ALTER TABLE `mods` ADD `boards` TEXT NOT NULL") or error(db_error());
+ query("UPDATE `mods` SET `boards` = '*'") or error(db_error());
case false:
// Update version number
file_write($config['has_installed'], VERSION);
diff --git a/install.sql b/install.sql
index 864d911c..6d29565b 100644
--- a/install.sql
+++ b/install.sql
@@ -113,8 +113,8 @@ CREATE TABLE IF NOT EXISTS `mods` (
-- Dumping data for table `mods`
--
-INSERT INTO `mods` (`id`, `username`, `password`, `type`) VALUES
-(1, 'admin', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 2);
+INSERT INTO `mods` (`id`, `username`, `password`, `type`, `boards`) VALUES
+(1, 'admin', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', 2, '*');
-- --------------------------------------------------------
diff --git a/mod.php b/mod.php
index 2e020acf..91ba7f7d 100644
--- a/mod.php
+++ b/mod.php
@@ -1008,7 +1008,7 @@
$boards = Array();
foreach($_POST as $name => $null) {
- if(preg_match('/^board_(\w+)/', $name, $m))
+ if(preg_match('/^board_(.+)$/', $name, $m))
$boards[] = $m[1];
}
$boards = implode(',', $boards);
@@ -1021,50 +1021,57 @@
$query->execute() or error(db_error($query));
modLog('Create a new user: "' . $_POST['username'] . '"');
- }
+ header('Location: ?/users', true, $config['redirect_http']);
+ } else {
- $__boards = '<ul style="list-style:none;padding:2px 5px">';
- $boards = listBoards();
- foreach($boards as &$_board) {
- $__boards .= '<li>' .
- '<input type="checkbox" name="board_' . $_board['uri'] . '" id="board_' . $_board['uri'] . '"/> ' .
- '<label style="display:inline" for="board_' . $_board['uri'] . '">' .
- sprintf($config['board_abbreviation'], $_board['uri']) .
- ' - ' . $_board['title'] .
- '</label>' .
- '</li>';
- }
- $__boards .= '</ul>';
+ $__boards = '<ul style="list-style:none;padding:2px 5px">';
+ $boards = array_merge(
+ Array(Array('uri' => '*', 'title' => 'All')
+ ), listBoards());
+ foreach($boards as &$_board) {
+ $__boards .= '<li>' .
+ '<input type="checkbox" name="board_' . $_board['uri'] . '" id="board_' . $_board['uri'] . '"' .
+ '<label style="display:inline" for="board_' . $_board['uri'] . '">' .
+ ($_board['uri'] == '*' ?
+ '<em>"*"</em>'
+ :
+ sprintf($config['board_abbreviation'], $_board['uri'])
+ ) .
+ ' - ' . $_board['title'] .
+ '</label>' .
+ '</li>';
+ }
- $body = '<fieldset><legend>New user</legend>' .
+ $body = '<fieldset><legend>New user</legend>' .
- // Begin form
- '<form style="text-align:center" action="" method="post">' .
+ // Begin form
+ '<form style="text-align:center" action="" method="post">' .
- '<table>' .
+ '<table>' .
- '<tr><th>Username</th><td><input size="20" maxlength="30" type="text" name="username" value="" autocomplete="off" /></td></tr>' .
- '<tr><th>Password</th><td><input size="20" maxlength="30" type="password" name="password" value="" autocomplete="off" /></td></tr>' .
- '<tr><th>Type</th><td>' .
- '<div><label for="janitor">Janitor</label> <input type="radio" id="janitor" name="type" value="' . JANITOR . '" /></div>' .
- '<div><label for="mod">Mod</label> <input type="radio" id="mod" name="type" value="' . MOD . '" /></div>' .
- '<div><label for="admin">Admin</label> <input type="radio" id="admin" name="type" value="' . ADMIN . '" /></div>' .
- '</td></tr>' .
- '<tr><th>Boards</th><td>' . $__boards . '</td></tr>' .
- '</table>' .
+ '<tr><th>Username</th><td><input size="20" maxlength="30" type="text" name="username" value="" autocomplete="off" /></td></tr>' .
+ '<tr><th>Password</th><td><input size="20" maxlength="30" type="password" name="password" value="" autocomplete="off" /></td></tr>' .
+ '<tr><th>Type</th><td>' .
+ '<div><label for="janitor">Janitor</label> <input type="radio" id="janitor" name="type" value="' . JANITOR . '" /></div>' .
+ '<div><label for="mod">Mod</label> <input type="radio" id="mod" name="type" value="' . MOD . '" /></div>' .
+ '<div><label for="admin">Admin</label> <input type="radio" id="admin" name="type" value="' . ADMIN . '" /></div>' .
+ '</td></tr>' .
+ '<tr><th>Boards</th><td>' . $__boards . '</td></tr>' .
+ '</table>' .
- '<input style="margin-top:10px" type="submit" value="Create user" />' .
+ '<input style="margin-top:10px" type="submit" value="Create user" />' .
- // End form
- '</form></fieldset>';
+ // End form
+ '</form></fieldset>';
- echo Element('page.html', Array(
- 'config'=>$config,
- 'title'=>'New user',
- 'body'=>$body
- ,'mod'=>true
- )
- );
+ echo Element('page.html', Array(
+ 'config'=>$config,
+ 'title'=>'New user',
+ 'body'=>$body
+ ,'mod'=>true
+ )
+ );
+ }
} elseif(preg_match('/^\/users\/(\d+)(\/(promote|demote|delete))?$/', $query, $matches)) {
$modID = &$matches[1];
@@ -1112,7 +1119,7 @@
if(!isset($change_password_only)) {
$boards = Array();
foreach($_POST as $name => $null) {
- if(preg_match('/^board_(\w+)/', $name, $m))
+ if(preg_match('/^board_(.+)$/', $name, $m))
$boards[] = $m[1];
}
$boards = implode(',', $boards);
@@ -1149,7 +1156,10 @@
}
$__boards = '<ul style="list-style:none;padding:2px 5px">';
- $boards = listBoards();
+ $boards = array_merge(
+ Array(Array('uri' => '*', 'title' => 'All')
+ ), listBoards());
+
$_mod['boards'] = explode(',', $_mod['boards']);
foreach($boards as &$_board) {
$__boards .= '<li>' .
@@ -1159,7 +1169,11 @@
: '') .
'/> ' .
'<label style="display:inline" for="board_' . $_board['uri'] . '">' .
- sprintf($config['board_abbreviation'], $_board['uri']) .
+ ($_board['uri'] == '*' ?
+ '<em>"*"</em>'
+ :
+ sprintf($config['board_abbreviation'], $_board['uri'])
+ ) .
' - ' . $_board['title'] .
'</label>' .
'</li>';