X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fpeerdetailspage.cpp;h=a569bd97e323be4aae0c812cc43cf3c76edecc6d;hb=59a5414ec47a2932a7802fcd1d98c4d80166564f;hp=fc522b09628248f96f0a8982d84d78196da64206;hpb=5c0453c8697cfaa843dd7f799e5404733ee56e13;p=fms.git diff --git a/src/http/pages/peerdetailspage.cpp b/src/http/pages/peerdetailspage.cpp index fc522b0..a569bd9 100644 --- a/src/http/pages/peerdetailspage.cpp +++ b/src/http/pages/peerdetailspage.cpp @@ -1,6 +1,7 @@ #include "../../../include/http/pages/peerdetailspage.h" #include "../../../include/stringfunctions.h" #include "../../../include/option.h" +#include "../../../include/global.h" #ifdef XMEM #include @@ -15,12 +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=""; + 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!="") { @@ -28,16 +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(); } - Option::Instance()->Get("FCPHost",fcphost); + 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 FROM tblIdentity WHERE IdentityID=?;"); + 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(); @@ -49,20 +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(usk.find("SSK@")==0) + if(freesiteedition>=0 && usk.find("SSK@")==0) { + std::string editionstr=""; usk.erase(0,3); - usk="USK"+usk+"/fms/0/"; + StringFunctions::Convert(freesiteedition,editionstr); + usk="USK"+usk+messagebase+"/"+editionstr+"/"; + } + else + { + usk=""; } content+="Name"+SanitizeOutput(name)+""; content+="Public Key"+SanitizeOutput(publickey)+""; - content+="Freesite"+SanitizeOutput(usk)+""; + 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 @@ -78,6 +141,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const content+="Message Count"; content+=""+messagecountstr; content+="  
"; + content+=CreateFormPassword(); content+=""; content+=""; content+=""; @@ -112,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+""; @@ -132,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+=""; @@ -149,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+""; @@ -167,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)