// List saved logins std::vector<std::string> LLSecAPIBasicHandler::listCredentials() { if (mProtectedDataMap.has("credential") && mProtectedDataMap["credential"].isMap()) { std::vector<std::string> logins(mProtectedDataMap["credential"].size()); int i = 0; for (LLSD::map_const_iterator it = mProtectedDataMap["credential"].beginMap(); it != mProtectedDataMap["credential"].endMap(); ++it) { logins[i++] = it->first; } return logins; } else return std::vector<std::string>(); }
void ReservationUserUpdateAction::run(Request& request) { stringstream s; DBLogModule::appendToLogIfChange(s, "Login", _user->getLogin(), _login); DBLogModule::appendToLogIfChange(s, "Adresse", _user->getAddress(), _address); DBLogModule::appendToLogIfChange(s, "E-mail", _user->getEMail(), _email); DBLogModule::appendToLogIfChange(s, "Code postal", _user->getPostCode(), _postalCode); DBLogModule::appendToLogIfChange(s, "Ville", _user->getCityText(), _city); DBLogModule::appendToLogIfChange(s, "Téléphone", _user->getPhone(), _phone); if(_authorizedLogin) { DBLogModule::appendToLogIfChange(s, "Autorisation de connexion", lexical_cast<string>(_user->getConnectionAllowed()), lexical_cast<string>(*_authorizedLogin)); } DBLogModule::appendToLogIfChange(s, "Nom", _user->getName(), _name); DBLogModule::appendToLogIfChange(s, "Prénom", _user->getSurname(), _surname); _user->setLogin(_login); _user->setAddress(_address); _user->setEMail(_email); _user->setPostCode(_postalCode); _user->setCityText(_city); _user->setPhone(_phone); if(_authorizedLogin) { _user->setConnectionAllowed(*_authorizedLogin); } _user->setName(_name); _user->setSurname(_surname); if(!s.str().empty()) { SecurityLog::addUserAdmin(request.getUser().get(), _user.get(), s.str()); ResaDBLog::AddUserAdminEntry(*request.getSession(), *_user, s.str()); } if( _autoResaActivated && ( _user->getProfile()->getKey() == ResaModule::GetBasicResaCustomerProfile()->getKey() || _user->getProfile()->getKey() == ResaModule::GetAutoResaResaCustomerProfile()->getKey() ) ){ stringstream s2; DBLogModule::appendToLogIfChange( s2, "Activation auto-réservation", _user->getProfile()->getKey() == ResaModule::GetAutoResaResaCustomerProfile()->getKey() ? "OUI" : "NON", *_autoResaActivated ? "OUI" : "NON" ); _user->setProfile( (*_autoResaActivated ? ResaModule::GetAutoResaResaCustomerProfile() : ResaModule::GetBasicResaCustomerProfile()).get() ); // Change detection if(!s2.str().empty()) { ResaDBLog::AddUserChangeAutoResaActivationEntry(*request.getSession(), *_user); // Send confirmation e-mail to the customer if(_autoResaActivated) { // Create a login if empty if(_user->getLogin().empty()) { string idealLogin(_user->getSurname().substr(0,1) + _user->getName()); algorithm::replace_all(idealLogin, " ", string()); algorithm::replace_all(idealLogin, "'", string()); algorithm::to_lower(idealLogin); UserTableSync::SearchResult logins(UserTableSync::Search(*_env, idealLogin)); if(logins.empty()) { _user->setLogin(idealLogin); } else { for(int i=0; i<999999; ++i) { UserTableSync::SearchResult logins(UserTableSync::Search(*_env, idealLogin + lexical_cast<string>(i))); if(logins.empty()) { _user->setLogin(idealLogin + lexical_cast<string>(i)); break; } } } } // Create random password if empty if(_user->getPassword().empty()) { _user->setRandomPassword(); } // Send confirmation email if(ResaModule::GetReservationContact()) { if(ResaModule::GetReservationContact()->sendCustomerEMail(*_user)) { ResaDBLog::AddEMailEntry(*request.getSession(), *_user, "Message d'activation de réservation en ligne"); } } } } } UserTableSync::Save(_user.get()); }
std::string NFCMasterNet_ServerModule::GetServersStatus() { rapidjson::Document doc; rapidjson::Document::AllocatorType& allocator = doc.GetAllocator(); rapidjson::Value root(rapidjson::kObjectType); root.AddMember("code", 0, allocator); root.AddMember("errMsg", "", allocator); root.AddMember("nowTime", pPluginManager->GetNowTime(), allocator); rapidjson::Value master(rapidjson::kArrayType); std::shared_ptr<ServerData> pServerData = mMasterMap.First(); while (pServerData) { rapidjson::Value server(rapidjson::kObjectType); server.AddMember("serverId", pServerData->pData->server_id(), allocator); server.AddMember("servrName", rapidjson::Value(pServerData->pData->server_name().c_str(), allocator), allocator); server.AddMember("ip", rapidjson::Value(pServerData->pData->server_ip().c_str(), allocator), allocator); server.AddMember("port", pServerData->pData->server_port(), allocator); server.AddMember("onlineCount", pServerData->pData->server_cur_count(), allocator); server.AddMember("status", (int)pServerData->pData->server_state(), allocator); /* rapidjson::Value server_info_ext(rapidjson::kArrayType); for (int i = 0; i < pServerData->pData->server_info_list_ext().key_size();i++) { rapidjson::Value extKeyValue(rapidjson::kObjectType); extKeyValue.AddMember(rapidjson::Value(pServerData->pData->server_info_list_ext().key(i).c_str(), allocator), rapidjson::Value(pServerData->pData->server_info_list_ext().value(i).c_str(), allocator), allocator); server_info_ext.PushBack(extKeyValue, allocator); } server.AddMember("info_ext", server_info_ext, allocator); */ master.PushBack(server, allocator); pServerData = mMasterMap.Next(); } root.AddMember("master", master, allocator); rapidjson::Value logins(rapidjson::kArrayType); pServerData = mLoginMap.First(); while (pServerData) { rapidjson::Value server(rapidjson::kObjectType); server.AddMember("serverId", pServerData->pData->server_id(), allocator); server.AddMember("servrName", rapidjson::Value(pServerData->pData->server_name().c_str(), allocator), allocator); server.AddMember("ip", rapidjson::Value(pServerData->pData->server_ip().c_str(), allocator), allocator); server.AddMember("port", pServerData->pData->server_port(), allocator); server.AddMember("onlineCount", pServerData->pData->server_cur_count(), allocator); server.AddMember("status", (int)pServerData->pData->server_state(), allocator); /* rapidjson::Value server_info_ext(rapidjson::kArrayType); for (int i = 0; i < pServerData->pData->server_info_list_ext().key_size();i++) { rapidjson::Value extKeyValue(rapidjson::kObjectType); extKeyValue.AddMember(rapidjson::Value(pServerData->pData->server_info_list_ext().key(i).c_str(), allocator), rapidjson::Value(pServerData->pData->server_info_list_ext().value(i).c_str(), allocator), allocator); server_info_ext.PushBack(extKeyValue, allocator); } server.AddMember("info_ext", server_info_ext, allocator); */ logins.PushBack(server, allocator); pServerData = mLoginMap.Next(); } root.AddMember("logins", logins, allocator); rapidjson::Value worlds(rapidjson::kArrayType); pServerData = mWorldMap.First(); while (pServerData.get()) { rapidjson::Value server(rapidjson::kObjectType); server.AddMember("serverId", pServerData->pData->server_id(), allocator); server.AddMember("servrName", rapidjson::Value(pServerData->pData->server_name().c_str(), allocator), allocator); server.AddMember("ip", rapidjson::Value(pServerData->pData->server_ip().c_str(), allocator), allocator); server.AddMember("port", pServerData->pData->server_port(), allocator); server.AddMember("onlineCount", pServerData->pData->server_cur_count(), allocator); server.AddMember("status", (int)pServerData->pData->server_state(), allocator); /* rapidjson::Value server_info_ext(rapidjson::kArrayType); for (int i = 0; i < pServerData->pData->server_info_list_ext().key_size();i++) { rapidjson::Value extKeyValue(rapidjson::kObjectType); extKeyValue.AddMember(rapidjson::Value(pServerData->pData->server_info_list_ext().key(i).c_str(), allocator), rapidjson::Value(pServerData->pData->server_info_list_ext().value(i).c_str(), allocator), allocator); server_info_ext.PushBack(extKeyValue, allocator); } server.AddMember("info_ext", server_info_ext, allocator); */ worlds.PushBack(server, allocator); pServerData = mWorldMap.Next(); } root.AddMember("worlds", worlds, allocator); rapidjson::Value proxys(rapidjson::kArrayType); pServerData = mProxyMap.First(); while (pServerData.get()) { rapidjson::Value server(rapidjson::kObjectType); server.AddMember("serverId", pServerData->pData->server_id(), allocator); server.AddMember("servrName", rapidjson::Value(pServerData->pData->server_name().c_str(), allocator), allocator); server.AddMember("ip", rapidjson::Value(pServerData->pData->server_ip().c_str(), allocator), allocator); server.AddMember("port", pServerData->pData->server_port(), allocator); server.AddMember("onlineCount", pServerData->pData->server_cur_count(), allocator); server.AddMember("status", (int)pServerData->pData->server_state(), allocator); /* rapidjson::Value server_info_ext(rapidjson::kArrayType); for (int i = 0; i < pServerData->pData->server_info_list_ext().key_size();i++) { rapidjson::Value extKeyValue(rapidjson::kObjectType); extKeyValue.AddMember(rapidjson::Value(pServerData->pData->server_info_list_ext().key(i).c_str(), allocator), rapidjson::Value(pServerData->pData->server_info_list_ext().value(i).c_str(), allocator), allocator); server_info_ext.PushBack(extKeyValue, allocator); } server.AddMember("info_ext", server_info_ext, allocator); */ proxys.PushBack(server, allocator); pServerData = mProxyMap.Next(); } root.AddMember("proxys", proxys, allocator); rapidjson::Value games(rapidjson::kArrayType); pServerData = mGameMap.First(); while (pServerData.get()) { rapidjson::Value server(rapidjson::kObjectType); server.AddMember("serverId", pServerData->pData->server_id(), allocator); server.AddMember("servrName", rapidjson::Value(pServerData->pData->server_name().c_str(), allocator), allocator); server.AddMember("ip", rapidjson::Value(pServerData->pData->server_ip().c_str(), allocator), allocator); server.AddMember("port", pServerData->pData->server_port(), allocator); server.AddMember("onlineCount", pServerData->pData->server_cur_count(), allocator); server.AddMember("status", (int)pServerData->pData->server_state(), allocator); /* rapidjson::Value server_info_ext(rapidjson::kArrayType); for (int i = 0; i < pServerData->pData->server_info_list_ext().key_size();i++) { rapidjson::Value extKeyValue(rapidjson::kObjectType); extKeyValue.AddMember(rapidjson::Value(pServerData->pData->server_info_list_ext().key(i).c_str(), allocator), rapidjson::Value(pServerData->pData->server_info_list_ext().value(i).c_str(), allocator), allocator); server_info_ext.PushBack(extKeyValue, allocator); } server.AddMember("info_ext", server_info_ext, allocator); */ games.PushBack(server, allocator); pServerData = mGameMap.Next(); } root.AddMember("games", games, allocator); rapidjson::StringBuffer jsonBuf; rapidjson::Writer<rapidjson::StringBuffer> jsonWriter(jsonBuf); root.Accept(jsonWriter); return jsonBuf.GetString(); }
void METHOD_MESSAGE_SEND::execute(xmlrpc_c::paramList const & paramList, xmlrpc_c::value * const retvalPtr) { std::string cookie = paramList.getString(0); std::vector<xmlrpc_c::value> logins(paramList.getArray(1)); std::map<std::string, xmlrpc_c::value> msgInfo(paramList.getStruct(2)); paramList.verifyEnd(3); ADMIN_INFO adminInfo; if (config->GetAdminInfo(cookie, &adminInfo)) { *retvalPtr = xmlrpc_c::value_boolean(false); return; } STG_MSG message; std::map<std::string, xmlrpc_c::value>::iterator it; if ((it = msgInfo.find("version")) == msgInfo.end()) { message.header.ver = 1; // Default value } else { message.header.ver = xmlrpc_c::value_int(it->second); } if ((it = msgInfo.find("type")) == msgInfo.end()) { message.header.type = 1; // default value } else { message.header.type = xmlrpc_c::value_int(it->second); } if ((it = msgInfo.find("repeat")) == msgInfo.end()) { *retvalPtr = xmlrpc_c::value_boolean(false); return; } message.header.repeat = xmlrpc_c::value_int(it->second); if ((it = msgInfo.find("repeat_period")) == msgInfo.end()) { *retvalPtr = xmlrpc_c::value_boolean(false); return; } message.header.repeatPeriod = xmlrpc_c::value_int(it->second); if ((it = msgInfo.find("show_time")) == msgInfo.end()) { *retvalPtr = xmlrpc_c::value_boolean(false); return; } message.header.showTime = xmlrpc_c::value_int(it->second); if ((it = msgInfo.find("text")) == msgInfo.end()) { *retvalPtr = xmlrpc_c::value_boolean(false); return; } message.text = IconvString(xmlrpc_c::value_string(it->second), "UTF-8", "CP1251"); message.header.creationTime = static_cast<int>(stgTime); message.header.lastSendTime = 0; std::vector<xmlrpc_c::value>::iterator lit; for (lit = logins.begin(); lit != logins.end(); ++lit) { USER_PTR ui; if (users->FindByName(xmlrpc_c::value_string(*lit), &ui)) { printfd(__FILE__, "METHOD_MESSAGE_SEND::execute(): 'User '%s' not found'\n", std::string(xmlrpc_c::value_string(*lit)).c_str()); } else { ui->AddMessage(&message); } } *retvalPtr = xmlrpc_c::value_boolean(true); }