/** Get a message node element, extrapolate its type (public msg, private msg, channelEnter, etc.) and emit the specific signal */ void AJAXChat::emitChatData(const QDomElement &message) { QString messageText = message.firstChildElement("text").text(); // decode html entities from the message text and simplify it QTextEdit t; t.setHtml(messageText); messageText = t.toPlainText().simplified(); if (messageText.startsWith("/")) { QStringList messageParts = messageText.split(" "); if (messageText.startsWith("/privmsg")) { const int userID = message.attribute("userID").toInt(); emit newPrivateMessage(messageParts.at(1), getUser(userID).text()); } else if (messageText.startsWith("/login")) { emit userLoggedIn(messageParts.at(1)); } else if (messageText.startsWith("/logout")) { emit userLoggedOut(messageParts.at(1)); qDebug("Logged out: " + getUser(messageParts.at(1)).text().toUtf8()); } else if (messageText.startsWith("/channelEnter")) { emit userJoinChannel(messageParts.at(1)); } else if (messageText.startsWith("/channelLeave")) { emit userLeaveChannel(messageParts.at(1)); } else if (messageText.startsWith("/kick")) { emit userKicked(messageParts.at(1)); } else if (messageText.startsWith("/nick")) { emit userChangeNick(messageParts.at(1), messageParts.at(2)); } } else { const int userID = message.attribute("userID").toInt(); emit newPublicMessage(messageText, getUser(userID).text()); } }
supla_client::~supla_client() { if (getUser()) // 1st line !!! getUser()->remove_client(this); delete channels; delete locations; }
websocketpp::http::status_code::value SessionApi::handleLogin(ApiRequest& aRequest, bool aIsSecure, const WebSocketPtr& aSocket, const string& aIP) { const auto& reqJson = aRequest.getRequestBody(); auto username = JsonUtil::getField<string>("username", reqJson, false); auto password = JsonUtil::getField<string>("password", reqJson, false); auto inactivityMinutes = JsonUtil::getOptionalFieldDefault<uint64_t>("max_inactivity", reqJson, WEBCFG(DEFAULT_SESSION_IDLE_TIMEOUT).uint64()); auto userSession = JsonUtil::getOptionalFieldDefault<bool>("user_session", reqJson, false); auto session = WebServerManager::getInstance()->getUserManager().authenticate(username, password, aIsSecure, inactivityMinutes, userSession, aIP); if (!session) { aRequest.setResponseErrorStr("Invalid username or password"); return websocketpp::http::status_code::unauthorized; } json retJson = { { "permissions", session->getUser()->getPermissions() }, { "token", session->getAuthToken() }, { "user", session->getUser()->getUserName() }, { "system", getSystemInfo(aIP) }, { "run_wizard", SETTING(WIZARD_RUN) }, { "cid", ClientManager::getInstance()->getMyCID().toBase32() }, }; if (aSocket) { session->onSocketConnected(aSocket); aSocket->setSession(session); } aRequest.setResponseBody(retJson); return websocketpp::http::status_code::ok; }
void UserInfoBase::pm(const string& hubHint) { if (getUser() && !ClientManager::isMe(getUser())) // [!] FlylinkDC do not send messages to themselves. { UserManager::getInstance()->outgoingPrivateMessage(getUser(), hubHint, Util::emptyStringT); } }
const tstring FinishedItem::getText(uint8_t col) const { dcassert(col >= 0 && col < COLUMN_LAST); switch(col) { case COLUMN_FILE: return Text::toT(Util::getFileName(getTarget())); case COLUMN_DONE: return Text::toT(Util::formatTime("%Y-%m-%d %H:%M:%S", getTime())); case COLUMN_PATH: return Text::toT(Util::getFilePath(getTarget())); case COLUMN_NICK: return Text::toT(ClientManager::getInstance()->getFormatedNicks(getUser())); case COLUMN_HUB: { if (getUser().user->isOnline()) { return Text::toT(ClientManager::getInstance()->getFormatedHubNames(getUser())); } else { auto ofu = ClientManager::getInstance()->getOfflineUser(getUser().user->getCID()); return TSTRING(OFFLINE) + (ofu ? _T(" ( ") + Text::toT(ofu->getUrl()) + _T(" ) ") : _T("")); } } case COLUMN_SIZE: return Util::formatBytesW(getSize()); case COLUMN_SPEED: return Util::formatBytesW(getAvgSpeed()) + _T("/s"); case COLUMN_TYPE: { tstring filetype = Text::toT(Util::getFileExt(Text::fromT(getText(COLUMN_FILE)))); if(!filetype.empty() && filetype[0] == _T('.')) filetype.erase(0, 1); return filetype; } default: return Util::emptyStringT; } }
void UserInfoBase::removeAll() { if (getUser()) { QueueManager::getInstance()->removeSource(getUser(), QueueItem::Source::FLAG_REMOVED); } }
void UserInfoBase::browseSqlExplorer(const string& hubHint) { if (getUser()) { UserManager::getInstance()->browseSqlExplorer(getUser(), hubHint); } }
void UserInfoBase::ungrantSlot(const string& hubHint) // [!] IRainman fix: add hubhint. { if (getUser()) { UploadManager::unreserveSlot(HintedUser(getUser(), hubHint)); } }
void UserInfoBase::addFav() { if (getUser()) { FavoriteManager::getInstance()->addFavoriteUser(getUser()); } }
void UserInfoBase::doReport(const string& hubHint) { if (getUser()) { ClientManager::getInstance()->reportUser(HintedUser(getUser(), hubHint)); } }
void WaitingUsersFrame::LoadAll() { CLockRedraw<> l_lock_draw(m_ctrlList); CLockRedraw<true> l_lock_draw_q(ctrlQueued); HTREEITEM userNode = ctrlQueued.GetRootItem(); while (userNode) { delete reinterpret_cast<UserItem *>(ctrlQueued.GetItemData(userNode)); userNode = ctrlQueued.GetNextSiblingItem(userNode); } // TODO - delete m_ctrlList.DeleteAllItems(); ctrlQueued.DeleteAllItems(); UQFUsers.clear(); // Load queue { UploadManager::LockInstanceQueue lockedInstance; const auto& users = lockedInstance->getUploadQueueL(); UQFUsers.reserve(users.size()); for (auto uit = users.cbegin(); uit != users.cend(); ++uit) { UQFUsers.push_back(uit->getUser()); ctrlQueued.InsertItem(TVIF_PARAM | TVIF_TEXT, (uit->getUser()->getLastNickT() + _T(" - ") + Text::toT(uit->m_hintedUser.hint)).c_str(), 0, 0, 0, 0, (LPARAM)(new UserItem(uit->getUser())), TVI_ROOT, TVI_LAST); for (auto i = uit->m_waiting_files.cbegin(); i != uit->m_waiting_files.cend(); ++i) { AddFile(*i); } } } m_needsResort = true; // [!] IRainman opt. m_needsUpdateStatus = true; // [!] IRainman opt. }
void UserInfoBase::delFav() { if (getUser()) { FavoriteManager::getInstance()->removeFavoriteUser(getUser()); } }
void UserInfoBase::setNormalPM() // [+] IRainman. { if (getUser()) { FavoriteManager::getInstance()->setNormalPM(getUser()); } }
void UserInfoBase::setUploadLimit(const int limit) // [+] IRainman. { if (getUser()) { FavoriteManager::getInstance()->setUploadLimit(getUser(), limit); } }
void UserInfoBase::setFreePM() // [+] IRainman. { if (getUser()) { FavoriteManager::getInstance()->setFreePM(getUser(), true); } }
void UserInfoBase::setIgnorePM() // [+] SSA. { if (getUser()) { FavoriteManager::getInstance()->setIgnorePM(getUser(), true); } }
void UserInfoBase::connectFav() { if (getUser()) { UserManager::getInstance()->openUserUrl(getUser()); } }
void UserInfoBase::createSummaryInfo(const string& hubHint) // [+] IRainman { if (getUser()) { UserManager::getInstance()->collectSummaryInfo(getUser(), hubHint); } }
/* * finalizeRequest * takes an action on a request * Arguments: user, I/P, string request, I/P, string accept, I/P, string * the user taking action the user that made the request whether the request was accepted */ void Server::finalizeRequest(string user, string request, string accept) { getUser(user).removeRequest(request); if (accept == "true") { getUser(user).addPartner(request); getUser(request).addPartner(user); } }
string OnlineUser::getLogPath() const noexcept { ParamMap params; params["userNI"] = [this] { return getIdentity().getNick(); }; params["hubNI"] = [this] { return getClient()->getHubName(); }; params["myNI"] = [this] { return getClient()->getMyNick(); }; params["userCID"] = [this] { return getUser()->getCID().toBase32(); }; params["hubURL"] = [this] { return getClient()->getHubUrl(); }; return LogManager::getInstance()->getPath(getUser(), params); }
void UserInfoBase::matchQueue() { if (getUser()) { try { QueueManager::getInstance()->addList(getUser(), QueueItem::FLAG_MATCH_QUEUE); } catch (const Exception& e) { LogManager::message(e.getError()); } } }
void UserInfoBase::browseList() { if (getUser()) { try { QueueManager::getInstance()->addList(getUser(), QueueItem::FLAG_CLIENT_VIEW | QueueItem::FLAG_PARTIAL_LIST); } catch (const Exception& e) { LogManager::message(e.getError()); } } }
void UserInfoBase::checkList() { if (getUser()) { try { QueueManager::getInstance()->addList(getUser(), QueueItem::FLAG_USER_CHECK); } catch (const Exception& e) { LogManager::message(e.getError()); } } }
void UserInfoBase::getUserResponses() { if (getUser()) { try { QueueManager::getInstance()->addCheckUserIP(getUser()); // [+] SSA } catch (const Exception& e) { LogManager::message(e.getError()); } } }
void UserInfoBase::ignoreOrUnignoreUserByName() // [!] IRainman moved from gui and clean { if (getUser()) { const auto& nick = getUser()->getLastNick(); if (UserManager::isInIgnoreList(nick)) { UserManager::removeFromIgnoreList(nick); } else { UserManager::addToIgnoreList(nick); } } }
int GoogleAppsMailbox::loginRequest() { //const QRegExp moorhuntHashRegex("(<<a[a-h].*>>)"); page = doGet("https://www.google.com/a/"+getMailbox()); int pos = 0; QRegExp re3("GALX\\\".*value=\\\"(.*)\\\"./>"); re3.setMinimal(true); if (re3.indexIn(page, pos) == -1) return 1; //LOG(Log::Info, page); const QString vars = QString("ltmpl=default<mplcache=2&continue=") + escape("https://mail.google.com/a/"+getMailbox()+"/") +"&service=mail&GALX=" + escape(re3.cap(1)) +"&rm=false&hl=pl&Email="+escape(getUser()) +"&Passwd="+escape(getPassword()) +"&rmShown=1"; page = doPost("https://www.google.com/a/"+getMailbox()+"/LoginAction2?service=mail",vars, true); QString username = getUser(); QRegExp re(username); QRegExp re2("&"); QRegExp authre("auth=([\\w\\d-]+)"); // To Do if (re.indexIn(page, pos) != -1) { QString url = re.cap(1); LOG(Log::Info, page + " <f"); if(url.indexOf("answer=40695") != -1) { LOG(Log::Info, "Niestety, konto zostało wyłączone. - " + getMailbox()); return 1; } url.replace(re2, "&"); url = unescape(url); if (authre.indexIn(page, pos) != -1) auth = authre.cap(1); LOG(Log::Info, auth + " <s"); return 0; } else return 1; }
const tstring FinishedItem::getText(uint8_t col) const { dcassert(col >= 0 && col < COLUMN_LAST); switch(col) { case COLUMN_FILE: return Text::toT(Util::getFileName(getTarget())); case COLUMN_DONE: return Text::toT(Util::formatTime("%Y-%m-%d %H:%M:%S", getTime())); case COLUMN_PATH: return Text::toT(Util::getFilePath(getTarget())); case COLUMN_NICK: return Text::toT(Util::toString(ClientManager::getInstance()->getNicks(getUser()))); case COLUMN_HUB: { auto hubs = ClientManager::getInstance()->getHubNames(getUser()); if (hubs.empty()) hubs.push_back(STRING(OFFLINE)); return Text::toT(Util::toString(hubs)); } case COLUMN_SIZE: return Util::formatBytesW(getSize()); case COLUMN_SPEED: return Util::formatBytesW(getAvgSpeed()) + _T("/s"); case COLUMN_TYPE: { tstring filetype = Text::toT(Util::getFileExt(Text::fromT(getText(COLUMN_FILE)))); if(!filetype.empty() && filetype[0] == _T('.')) filetype.erase(0, 1); return filetype; } default: return Util::emptyStringT; } }
void MessageManager::loadUsers() { try { SimpleXML xml; SettingsManager::loadSettingFile(xml, CONFIG_DIR, CONFIG_NAME); auto cm = ClientManager::getInstance(); if (xml.findChild("Ignored")) { xml.stepIn(); xml.resetCurrentChild(); if (xml.findChild("Users")) { xml.stepIn(); while (xml.findChild("User")) { UserPtr user = cm->getUser(CID(xml.getChildAttrib("CID"))); { WLock(cm->getCS()); cm->addOfflineUser(user, xml.getChildAttrib("Nick"), xml.getChildAttrib("Hub"), (uint32_t)xml.getIntChildAttrib("LastSeen")); } WLock l(Ignorecs); ignoredUsers.emplace(user); user->setFlag(User::IGNORED); } xml.stepOut(); } xml.stepOut(); } } catch (const Exception& e) { LogManager::getInstance()->message(STRING_F(LOAD_FAILED_X, CONFIG_NAME % e.getError()), LogManager::LOG_ERROR); } }
// !SMT!-S void UserInfoBase::pm_msg(const string& hubHint, const tstring& p_message) { if (!p_message.empty()) // [~] SCALOlaz: support for abolition and prohibition to send a blank line https://code.google.com/p/flylinkdc/issues/detail?id=1034 { UserManager::getInstance()->outgoingPrivateMessage(getUser(), hubHint, p_message); } }
int getAuth_(struct lsfAuth *auth, char *host) { auth->uid = getuid(); if (getUser(auth->lsfUserName, sizeof(auth->lsfUserName)) < 0) { ls_syslog(LOG_DEBUG, I18N_FUNC_FAIL_MM, "getAuth", "getUser"); lserrno = LSE_BADUSER; return -1; } auth->gid = getgid(); if (!genParams_[LSF_AUTH].paramValue) auth->kind = CLIENT_SETUID; else if (!strcmp(genParams_[LSF_AUTH].paramValue, AUTH_IDENT)) auth->kind = CLIENT_IDENT; else if (!strcmp(genParams_[LSF_AUTH].paramValue, AUTH_PARAM_EAUTH)) { auth->kind = CLIENT_EAUTH; return getEAuth(&auth->k.eauth, host); } else auth->kind = CLIENT_SETUID; return 0; }