diff --git a/WebModules.cpp b/WebModules.cpp index 9c1a203e..071b2f9a 100644 --- a/WebModules.cpp +++ b/WebModules.cpp @@ -34,6 +34,20 @@ typedef std::multimap::iterator mIPSessionsIterator; static CSessionManager Sessions; +class CWebAuth : public CAuthBase { +public: + CWebAuth(CWebSock* pWebSock, const CString& sUsername, const CString& sPassword); + virtual ~CWebAuth() {} + + void SetWebSock(CWebSock* pWebSock) { m_pWebSock = pWebSock; } + void AcceptedLogin(CUser& User); + void RefusedLogin(const CString& sReason); + void Invalidate(); +private: +protected: + CWebSock* m_pWebSock; +}; + void CWebSock::FinishUserSessions(const CUser& User) { Sessions.m_mspSessions.FinishUserSessions(User); } @@ -198,7 +212,7 @@ void CWebSock::ParsePath() { DEBUG("Path [" + m_sPath + "], Module [" + m_sModName + "], Page [" + m_sPage + "]"); } -size_t CWebSock::GetAvailSkins(vector& vRet) const { +void CWebSock::GetAvailSkins(VCString& vRet) const { vRet.clear(); CString sRoot(GetSkinPath("_default_")); @@ -218,7 +232,8 @@ size_t CWebSock::GetAvailSkins(vector& vRet) const { const CFile& SubDir = *Dir[d]; if (SubDir.IsDir() && SubDir.GetShortName() == "_default_") { - vRet.push_back(SubDir); + vRet.push_back(SubDir.GetShortName()); + break; } } @@ -226,12 +241,10 @@ size_t CWebSock::GetAvailSkins(vector& vRet) const { const CFile& SubDir = *Dir[e]; if (SubDir.IsDir() && SubDir.GetShortName() != "_default_" && SubDir.GetShortName() != ".svn") { - vRet.push_back(SubDir); + vRet.push_back(SubDir.GetShortName()); } } } - - return vRet.size(); } VCString CWebSock::GetDirs(CModule* pModule, bool bIsTemplate) { diff --git a/WebModules.h b/WebModules.h index 4d72f147..40fe3079 100644 --- a/WebModules.h +++ b/WebModules.h @@ -10,11 +10,11 @@ #define _WEBMODULES_H #include "zncconfig.h" -#include "Client.h" #include "Template.h" #include "HTTPSock.h" -#include "FileUtils.h" +class CAuthBase; +class CUser; class CWebSock; class CModule; class CWebSubPage; @@ -91,20 +91,6 @@ private: VPair m_vParams; }; -class CWebAuth : public CAuthBase { -public: - CWebAuth(CWebSock* pWebSock, const CString& sUsername, const CString& sPassword); - virtual ~CWebAuth() {} - - void SetWebSock(CWebSock* pWebSock) { m_pWebSock = pWebSock; } - void AcceptedLogin(CUser& User); - void RefusedLogin(const CString& sReason); - void Invalidate(); -private: -protected: - CWebSock* m_pWebSock; -}; - class CWebSessionMap : public TCacheMap > { public: CWebSessionMap(unsigned int uTTL = 5000) : TCacheMap >(uTTL) {} @@ -141,7 +127,7 @@ public: virtual Csock* GetSockObj(const CString& sHost, unsigned short uPort); static CString GetSkinPath(const CString& sSkinName); CModule* GetModule() const { return (CModule*) m_pModule; } - size_t GetAvailSkins(vector& vRet) const; + void GetAvailSkins(VCString& vRet) const; CString GetSkinName(); CString GetRequestCookie(const CString& sKey); diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index f5f19e31..6ef3d623 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -724,15 +724,15 @@ public: } } - vector vDirs; + vector vDirs; WebSock.GetAvailSkins(vDirs); for (unsigned int d = 0; d < vDirs.size(); d++) { - const CFile& SubDir = vDirs[d]; + const CString& SubDir = vDirs[d]; CTemplate& l = Tmpl.AddRow("SkinLoop"); - l["Name"] = SubDir.GetShortName(); + l["Name"] = SubDir; - if (pUser && SubDir.GetShortName() == pUser->GetSkinName()) { + if (pUser && SubDir == pUser->GetSkinName()) { l["Checked"] = "true"; } } @@ -1019,15 +1019,15 @@ public: #endif } - vector vDirs; + vector vDirs; WebSock.GetAvailSkins(vDirs); for (unsigned int d = 0; d < vDirs.size(); d++) { - const CFile& SubDir = vDirs[d]; + const CString& SubDir = vDirs[d]; CTemplate& l = Tmpl.AddRow("SkinLoop"); - l["Name"] = SubDir.GetShortName(); + l["Name"] = SubDir; - if (SubDir.GetShortName() == CZNC::Get().GetSkinName()) { + if (SubDir == CZNC::Get().GetSkinName()) { l["Checked"] = "true"; } }