aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/admin
diff options
context:
space:
mode:
authorPaul S. Owen <psotfx@users.sourceforge.net>2002-03-01 01:15:39 +0000
committerPaul S. Owen <psotfx@users.sourceforge.net>2002-03-01 01:15:39 +0000
commit33a6fbcda02a5ff749a63df8f1db3d873a64e317 (patch)
tree8c4ad46f33c3d7a12b2fda4ad25f0529f8865ea9 /phpBB/admin
parent81fc6e2d2213596801a0ff19d8dcffdf3983f63f (diff)
downloadforums-33a6fbcda02a5ff749a63df8f1db3d873a64e317.tar
forums-33a6fbcda02a5ff749a63df8f1db3d873a64e317.tar.gz
forums-33a6fbcda02a5ff749a63df8f1db3d873a64e317.tar.bz2
forums-33a6fbcda02a5ff749a63df8f1db3d873a64e317.tar.xz
forums-33a6fbcda02a5ff749a63df8f1db3d873a64e317.zip
Almost but not quite ... wouldn't update user levels for former mods who've been removed from auth_access ... doh
git-svn-id: file:///svn/phpbb/trunk@2229 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/admin')
-rw-r--r--phpBB/admin/admin_ug_auth.php51
1 files changed, 43 insertions, 8 deletions
diff --git a/phpBB/admin/admin_ug_auth.php b/phpBB/admin/admin_ug_auth.php
index 05e151e576..91f513850c 100644
--- a/phpBB/admin/admin_ug_auth.php
+++ b/phpBB/admin/admin_ug_auth.php
@@ -417,13 +417,48 @@ if ( isset($HTTP_POST_VARS['submit']) && ( ( $mode == "user" && $user_id ) || (
//
// Update user level to user for appropriate users
//
- $sql = "SELECT u.user_id, SUM(aa.auth_mod) AS mod
- FROM " . AUTH_ACCESS_TABLE . " aa, " . USER_GROUP_TABLE . " ug, " . USERS_TABLE . " u
- WHERE ug.group_id = aa.group_id
- AND u.user_id = ug.user_id
- AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
- GROUP BY u.user_id
- HAVING mod = 0";
+ switch ( SQL_LAYER )
+ {
+ case 'postgresql':
+ $sql = "SELECT u.user_id
+ FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa
+ WHERE ug.user_id = u.user_id
+ AND aa.group_id = ug.group_id
+ AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
+ GROUP BY u.user_id
+ HAVING SUM(aa.auth_mod) = 0
+ UNION (
+ SELECT u.user_id
+ FROM " . USERS_TABLE . " u
+ WHERE NOT EXISTS (
+ SELECT aa.auth_mod
+ FROM " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa
+ WHERE ug.user_id = u.user_id
+ AND aa.group_id = ug.group_id
+ )
+ AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
+ GROUP BY u.user_id
+ )";
+ break;
+ case 'oracle':
+ $sql = "SELECT u.user_id, SUM(aa.auth_mod) AS mod
+ FROM " . USERS_TABLE . " u, " . USER_GROUP_TABLE . " ug, " . AUTH_ACCESS_TABLE . " aa
+ WHERE ug.user_id = u.user_id(+)
+ AND aa.group_id = ug.group_id(+)
+ AND u.user_level NOT IN (" . USER . ", " . ADMIN . ")
+ GROUP BY u.user_id
+ HAVING mod = 0";
+ break;
+ default:
+ $sql = "SELECT u.user_id, SUM(aa.auth_mod) AS mod
+ FROM ( ( " . USERS_TABLE . " u
+ LEFT JOIN " . USER_GROUP_TABLE . " ug ON ug.user_id = u.user_id )
+ LEFT JOIN " . AUTH_ACCESS_TABLE . " aa ON aa.group_id = ug.group_id )
+ WHERE u.user_level NOT IN (" . USER . ", " . ADMIN . ")
+ GROUP BY u.user_id
+ HAVING mod = 0";
+ break;
+ }
if ( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't obtain user/group permissions", "", __LINE__, __FILE__, $sql);
@@ -432,7 +467,7 @@ if ( isset($HTTP_POST_VARS['submit']) && ( ( $mode == "user" && $user_id ) || (
$unset_mod = "";
while( $row = $db->sql_fetchrow($result) )
{
- $unset_mod .= ( ( $unset_mod != "" ) ? ", " : "" ) . $row['user_id'];
+ echo $unset_mod .= ( ( $unset_mod != "" ) ? ", " : "" ) . $row['user_id'];
}
$db->sql_freeresult($result);