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 <psychon@znc.in>
This commit is contained in:
Uli Schlachter
2011-04-03 10:06:16 +02:00
parent 3fa04f8c0a
commit ad442f4f10
3 changed files with 29 additions and 30 deletions

View File

@@ -34,6 +34,20 @@ typedef std::multimap<CString, CWebSession*>::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<CFile>& vRet) const {
void CWebSock::GetAvailSkins(VCString& vRet) const {
vRet.clear();
CString sRoot(GetSkinPath("_default_"));
@@ -218,7 +232,8 @@ size_t CWebSock::GetAvailSkins(vector<CFile>& 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<CFile>& 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) {

View File

@@ -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<CString, CSmartPtr<CWebSession> > {
public:
CWebSessionMap(unsigned int uTTL = 5000) : TCacheMap<CString, CSmartPtr<CWebSession> >(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<CFile>& vRet) const;
void GetAvailSkins(VCString& vRet) const;
CString GetSkinName();
CString GetRequestCookie(const CString& sKey);

View File

@@ -724,15 +724,15 @@ public:
}
}
vector<CFile> vDirs;
vector<CString> 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<CFile> vDirs;
vector<CString> 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";
}
}