diff options
Diffstat (limited to 'phpBB/develop')
-rw-r--r-- | phpBB/develop/add_permissions.php | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/phpBB/develop/add_permissions.php b/phpBB/develop/add_permissions.php index f0b48809c5..bba431eeb9 100644 --- a/phpBB/develop/add_permissions.php +++ b/phpBB/develop/add_permissions.php @@ -165,7 +165,6 @@ $u_permissions = array( 'u_pm_bbcode' => array(0, 1), 'u_pm_smilies' => array(0, 1), 'u_pm_download' => array(0, 1), - 'u_pm_sig' => array(0, 1), 'u_pm_report' => array(0, 1), 'u_pm_edit' => array(0, 1), 'u_pm_printpm' => array(0, 1), @@ -178,15 +177,29 @@ $u_permissions = array( echo "<p><b>Determining existing permissions</b></p>\n"; -$sql = 'SELECT auth_option FROM ' . ACL_OPTIONS_TABLE; +$sql = 'SELECT auth_option_id, auth_option FROM ' . ACL_OPTIONS_TABLE; $result = $db->sql_query($sql); +$remove_auth_options = array(); while ($row = $db->sql_fetchrow($result)) { + if (!in_array($row['auth_option'], array_keys(${substr($row['auth_option'], 0, 2) . 'permissions'}))) + { + $remove_auth_options[$row['auth_option']] = $row['auth_option_id']; + } unset(${substr($row['auth_option'], 0, 2) . 'permissions'}[$row['auth_option']]); } $db->sql_freeresult($result); +if (sizeof($remove_auth_options)) +{ + $db->sql_query('DELETE FROM ' . ACL_USERS_TABLE . ' WHERE auth_option_id IN (' . implode(', ', $remove_auth_options) . ')'); + $db->sql_query('DELETE FROM ' . ACL_GROUPS_TABLE . ' WHERE auth_option_id IN (' . implode(', ', $remove_auth_options) . ')'); + $db->sql_query('DELETE FROM ' . ACL_OPTIONS_TABLE . ' WHERE auth_option_id IN (' . implode(', ', $remove_auth_options) . ')'); + + echo '<p><b>Removed the following auth options... [<i>' . implode(', ', array_keys($remove_auth_options)) . "</i>]</b></p>\n\n"; +} + $prefixes = array('f_', 'a_', 'm_', 'u_'); foreach ($prefixes as $prefix) |