Причина выявлена в скрипте admin_ug_auth.php что-то не срабатывает и в результате в таблицу phpbb_users в поле user_level перестает заноситься значение 2 (что юзер-модер), приэтом, если юзера снять с должности модера, то заноситься 0, т.е. все нормально.
Взял скрипт admin_ug_auth.php оригинального phpbb - все заработало.
таким образом где-то не срабатывает код
Код: Выделить всё
if ( $set_mod != '' )
{
$sql = "UPDATE " . USERS_TABLE . "
SET user_level = " . MOD . "
WHERE user_id IN ($set_mod)";
if( !($result = $db->sql_query($sql)) )
{
message_die(GENERAL_ERROR, "Couldn't update user level", "", __LINE__, __FILE__, $sql);
}
}
1-ый аттач - модифицированный admin_ug_auth.php
2-ой аттач - оригинальный admin_ug_auth.php
Добавлено спустя 11 часов 54 минуты 9 секунд:
Неисправность обнаружена и исправлена.
Как я и полагал, при установке мода Global moderators в скрипте admin_ug_auth.php была следующая ошибка:
Было:
Код: Выделить всё
//
// Update user level to mod for appropriate users
//
$sql = "SELECT u.user_id
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 . ", " . GLOBAL_MOD . ")
GROUP BY u.user_id
HAVING SUM(aa.auth_mod) > 0";
Код: Выделить всё
//
// Update user level to mod for appropriate users
//
$sql = "SELECT u.user_id
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 ug.user_pending = 0
AND u.user_level NOT IN (" . MOD . ", " . ADMIN . ", " . GLOBAL_MOD . ")
GROUP BY u.user_id
HAVING SUM(aa.auth_mod) > 0";
Код: Выделить всё
" . MOD . ",
Код: Выделить всё
" . USER . ",
У меня вопрос к техподдержке, что означает sql запрос:
Код: Выделить всё
AND ug.user_pending = 0