bool CUser::PutAllUser(const CString& sLine, CClient* pClient, CClient* pSkipClient) { PutUser(sLine, pClient, pSkipClient); for (vector<CIRCNetwork*>::iterator it = m_vIRCNetworks.begin(); it != m_vIRCNetworks.end(); ++it) { CIRCNetwork* pNetwork = *it; if (pNetwork->PutUser(sLine, pClient, pSkipClient)) { return true; } } return (pClient == NULL); }
virtual bool OnWebRequest(CWebSock& WebSock, const CString& sPageName, CTemplate& Tmpl) { if (sPageName == "index") { if (WebSock.IsPost()) { CUser *pUser = CZNC::Get().FindUser(WebSock.GetParam("user").Token(0, false, "/")); if (!pUser) { WebSock.GetSession()->AddError("User not found"); return true; } CIRCNetwork *pNetwork = pUser->FindNetwork(WebSock.GetParam("user").Token(1, false, "/")); if (!pNetwork) { WebSock.GetSession()->AddError("Network not found"); return true; } bool bToServer = WebSock.GetParam("send_to") == "server"; const CString sLine = WebSock.GetParam("line"); Tmpl["user"] = pUser->GetUserName(); Tmpl[bToServer ? "to_server" : "to_client"] = "true"; Tmpl["line"] = sLine; if (bToServer) { pNetwork->PutIRC(sLine); } else { pNetwork->PutUser(sLine); } WebSock.GetSession()->AddSuccess("Line sent"); } const map<CString,CUser*>& msUsers = CZNC::Get().GetUserMap(); for (map<CString,CUser*>::const_iterator it = msUsers.begin(); it != msUsers.end(); ++it) { CTemplate& l = Tmpl.AddRow("UserLoop"); l["Username"] = (*it->second).GetUserName(); vector<CIRCNetwork*> vNetworks = (*it->second).GetNetworks(); for (vector<CIRCNetwork*>::const_iterator it2 = vNetworks.begin(); it2 != vNetworks.end(); ++it2) { CTemplate& NetworkLoop = l.AddRow("NetworkLoop"); NetworkLoop["Username"] = (*it->second).GetUserName(); NetworkLoop["Network"] = (*it2)->GetName(); } } return true; } return false; }
void SendClient(const CString& sLine) { CUser *pUser = CZNC::Get().FindUser(sLine.Token(1)); if (pUser) { CIRCNetwork *pNetwork = pUser->FindNetwork(sLine.Token(2)); if (pNetwork) { pNetwork->PutUser(sLine.Token(3, true)); PutModule("Sent [" + sLine.Token(3, true) + "] to " + pUser->GetUserName() + "/" + pNetwork->GetName()); } else { PutModule("Network [" + sLine.Token(2) + "] not found for user [" + sLine.Token(1) + "]"); } } else { PutModule("User [" + sLine.Token(1) + "] not found"); } }