diff --git a/modules/admin.cpp b/modules/admin.cpp index a86dfb9b..d7f745c2 100644 --- a/modules/admin.cpp +++ b/modules/admin.cpp @@ -601,6 +601,11 @@ class CAdminMod : public CModule { if (!pUser) return; + if (pUser->DenyLoadMod() && !m_pUser->IsAdmin()) { + PutModule("Loading modules has been denied"); + return; + } + CModule *pMod = (pUser)->GetModules().FindModule(sModName); if (!pMod) { if (!(pUser)->GetModules().LoadModule(sModName, sArgs, pUser, sModRet, false)) { @@ -633,6 +638,11 @@ class CAdminMod : public CModule { CUser* pUser = GetUser(sUsername); if (!pUser) return; + + if (pUser->DenyLoadMod() && !m_pUser->IsAdmin()) { + PutModule("Loading modules has been denied"); + return; + } if (!(pUser)->GetModules().UnloadModule(sModName, sModRet)) { PutModule("Unable to unload module [" + sModName + "] [" + sModRet + "]");