From ad442f4f107260d91e91c3e2121984fbff4b9b32 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Sun, 3 Apr 2011 10:06:16 +0200 Subject: [PATCH] Include less headers in WebModules.h From Client.h, only CAuthBase is needed. This is solved by moving the whole CWebAuth class to WebModules.cpp. The include of FileUtils.h is avoided by changing the API. GetAvailSkins() now returns the skin names instead of a CFile for the skin's path. Signed-off-by: Uli Schlachter --- WebModules.cpp | 23 ++++++++++++++++++----- WebModules.h | 20 +++----------------- modules/webadmin.cpp | 16 ++++++++-------- 3 files changed, 29 insertions(+), 30 deletions(-) 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"; } }