X-Git-Url: https://git.pterodactylus.net/?p=fms.git;a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fpeerdetailspage.cpp;h=a569bd97e323be4aae0c812cc43cf3c76edecc6d;hp=9a8fd1bf7a9c9496b2c70c7362312a36c502636d;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hpb=8a0a83a78390f22f99d4487cda2569909dfbc28e diff --git a/src/http/pages/peerdetailspage.cpp b/src/http/pages/peerdetailspage.cpp index 9a8fd1b..a569bd9 100644 --- a/src/http/pages/peerdetailspage.cpp +++ b/src/http/pages/peerdetailspage.cpp @@ -1,5 +1,7 @@ #include "../../../include/http/pages/peerdetailspage.h" #include "../../../include/stringfunctions.h" +#include "../../../include/option.h" +#include "../../../include/global.h" #ifdef XMEM #include @@ -14,10 +16,21 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const std::string publickey; std::string messagetrust; std::string trustlisttrust; - std::string keypart=""; std::string lastseen=""; std::string dateadded=""; std::string addedmethod=""; + std::string usk=""; + std::string fcphost="127.0.0.1"; + std::string hidden=""; + int freesiteedition=-1; + std::string publishtrustlist=""; + std::string messagebase=""; + + Option option(m_db); + std::string fproxyport="8888"; + option.Get("FProxyPort",fproxyport); + option.Get("MessageBase",messagebase); + option.Get("FCPHost",fcphost); if(queryvars.find("identityid")!=queryvars.end() && (*queryvars.find("identityid")).second!="") { @@ -25,14 +38,28 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const StringFunctions::Convert((*queryvars.find("identityid")).second,identityid); } - if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="deletemessages") + if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="deletemessages" && ValidateFormPassword(queryvars)) { SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblMessage WHERE IdentityID=?;"); del.Bind(0,identityid); del.Step(); } - SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,DateAdded,LastSeen,AddedMethod FROM tblIdentity WHERE IdentityID=?;"); + if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="hide" && ValidateFormPassword(queryvars)) + { + SQLite3DB::Statement del=m_db->Prepare("UPDATE tblIdentity SET Hidden='true' WHERE IdentityID=?;"); + del.Bind(0,identityid); + del.Step(); + } + + if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="show" && ValidateFormPassword(queryvars)) + { + SQLite3DB::Statement del=m_db->Prepare("UPDATE tblIdentity SET Hidden='false' WHERE IdentityID=?;"); + del.Bind(0,identityid); + del.Step(); + } + + SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,DateAdded,LastSeen,AddedMethod,Hidden,FreesiteEdition,PublishTrustList FROM tblIdentity WHERE IdentityID=?;"); st.Bind(0,identityid); st.Step(); @@ -44,12 +71,61 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const st.ResultText(2,dateadded); st.ResultText(3,lastseen); st.ResultText(4,addedmethod); + st.ResultText(5,hidden); + if(st.ResultNull(6)==false) + { + st.ResultInt(6,freesiteedition); + } + st.ResultText(7,publishtrustlist); + + usk=publickey; + if(freesiteedition>=0 && usk.find("SSK@")==0) + { + std::string editionstr=""; + usk.erase(0,3); + StringFunctions::Convert(freesiteedition,editionstr); + usk="USK"+usk+messagebase+"/"+editionstr+"/"; + } + else + { + usk=""; + } content+="Name"+SanitizeOutput(name)+""; content+="Public Key"+SanitizeOutput(publickey)+""; + if(usk!="") + { + content+="Freesite"+SanitizeOutput(usk)+""; + } + if(publishtrustlist=="true") + { + std::string lastseendate=lastseen; + if(lastseendate.size()>=10) + { + lastseendate=lastseendate.substr(0,10); + } + content+="Trust List XMLTrust List"; + } content+="Date Added"+dateadded+""; content+="Last Seen"+lastseen+""; content+="Added Method"+SanitizeOutput(addedmethod)+""; + content+="Hidden in Main Peer Trust Page"; + content+=""+hidden; + content+=" 
"; + content+=CreateFormPassword(); + content+=""; + if(hidden=="false") + { + content+=""; + content+=""; + } + else + { + content+=""; + content+=""; + } + content+="
"; + content+=""; } // get message count posted by this identity @@ -65,6 +141,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const content+="Message Count"; content+=""+messagecountstr; content+="  
"; + content+=CreateFormPassword(); content+=""; content+=""; content+=""; @@ -99,13 +176,8 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const st.ResultText(5,messagetrustcomment); st.ResultText(6,trustlisttrustcomment); - if(publickey.size()>8) - { - keypart=publickey.substr(3,5); - } - content+=""; - content+=""+SanitizeOutput(name+keypart)+"..."; + content+=""+SanitizeOutput(CreateShortIdentityName(name,publickey))+""; content+=""+messagetrust+""; content+=""+SanitizeOutput(messagetrustcomment)+""; content+=""+trustlisttrust+""; @@ -119,6 +191,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const st.Bind(0,identityid); st.Step(); + content+="
"; content+=""; content+="Trust of this identity from other identities"; content+=""; @@ -136,14 +209,9 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const st.ResultText(4,thisid); st.ResultText(5,messagetrustcomment); st.ResultText(6,trustlisttrustcomment); - - if(publickey.size()>8) - { - keypart=publickey.substr(3,5); - } content+=""; - content+=""+SanitizeOutput(name+keypart)+"..."; + content+=""+SanitizeOutput(CreateShortIdentityName(name,publickey))+""; content+=""+messagetrust+""; content+=""+SanitizeOutput(messagetrustcomment)+""; content+=""+trustlisttrust+""; @@ -154,7 +222,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const } content+=""; - return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content); + return StringFunctions::Replace(m_template,"[CONTENT]",content); } const std::string PeerDetailsPage::GetClassString(const std::string &trustlevel)