diff options
author | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-03-01 01:15:39 +0000 |
---|---|---|
committer | Paul S. Owen <psotfx@users.sourceforge.net> | 2002-03-01 01:15:39 +0000 |
commit | 33a6fbcda02a5ff749a63df8f1db3d873a64e317 (patch) | |
tree | 8c4ad46f33c3d7a12b2fda4ad25f0529f8865ea9 /phpBB/admin | |
parent | 81fc6e2d2213596801a0ff19d8dcffdf3983f63f (diff) | |
download | forums-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.php | 51 |
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); |