diff --git a/core/AdminCache.cpp b/core/AdminCache.cpp index f89b859a..9b04a641 100644 --- a/core/AdminCache.cpp +++ b/core/AdminCache.cpp @@ -951,7 +951,12 @@ bool AdminCache::GetAdminFlag(AdminId id, AdminFlag flag, AccessMode mode) { return ((pUser->flags & bit) == bit); } else if (mode == Access_Effective) { - return ((pUser->eflags & bit) == bit); + bool has_bit = ((pUser->eflags & bit) == bit); + if (!has_bit && flag != Admin_Root && ((pUser->eflags & ADMFLAG_ROOT) == ADMFLAG_ROOT)) + { + has_bit = true; + } + return has_bit; } return false;