X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fhttp%2Fpages%2Fpeertrustpage.cpp;h=91d960fc79a40feea00680fa963f7f2b72efd8ae;hb=f2545574af789b63fc655decfe31a3d9f1b30504;hp=ac6b053adc7caecfb63e9f32385d54bac8f5cafa;hpb=6836fbb5db8464f56e682989996b2210b14231d0;p=fms.git diff --git a/src/http/pages/peertrustpage.cpp b/src/http/pages/peertrustpage.cpp index ac6b053..91d960f 100644 --- a/src/http/pages/peertrustpage.cpp +++ b/src/http/pages/peertrustpage.cpp @@ -23,7 +23,7 @@ const std::string PeerTrustPage::BuildQueryString(const long startrow, const std { returnval+="&"; } - returnval+="namesearch="+namesearch; + returnval+="namesearch="+StringFunctions::UriEncode(namesearch); } if(sortby!="") @@ -119,19 +119,36 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s { localidentityidstr=(*queryvars.find("localidentityid")).second; StringFunctions::Convert(localidentityidstr,localidentityid); + // insert the ID into the temporary table so we remember the identity if we load the page later + m_db->Execute("DELETE FROM tmpLocalIdentityPeerTrustPage;"); + SQLite3DB::Statement st=m_db->Prepare("INSERT INTO tmpLocalIdentityPeerTrustPage(LocalIdentityID) VALUES(?);"); + st.Bind(0,localidentityid); + st.Step(); } else { - SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID FROM tblLocalIdentity;"); + // try to get the localidentityid if it exists in the temp table, otherwise load the first identity in the database + SQLite3DB::Statement st=m_db->Prepare("SELECT LocalIdentityID FROM tmpLocalIdentityPeerTrustPage;"); st.Step(); if(st.RowReturned()) { st.ResultInt(0,localidentityid); StringFunctions::Convert(localidentityid,localidentityidstr); } + else + { + st=m_db->Prepare("SELECT LocalIdentityID FROM tblLocalIdentity;"); + st.Step(); + if(st.RowReturned()) + { + st.ResultInt(0,localidentityid); + StringFunctions::Convert(localidentityid,localidentityidstr); + } + st.Finalize(); + } } - if(localidentityid!=-1 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="update") + if(localidentityid!=-1 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="update" && ValidateFormPassword(queryvars)) { std::vector identityids; std::vector oldlmt; @@ -244,14 +261,14 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s // search drop down content+="
"; - content+="
"; + content+=""; content+=""; content+=""; content+="
"; content+="
"; content+="
"; - content+="
"; + content+=""; content+="Load Trust List of "; content+=CreateLocalIdentityDropDown("localidentityid",localidentityid); content+=""; @@ -259,6 +276,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s content+="
"; content+=""; + content+=CreateFormPassword(); content+=""; content+=""; content+=""; @@ -267,19 +285,19 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s content+=""; } content+=""; - content+=""; - content+=""; + content+=""; + content+=""; content+=""; - content+=""; - content+=""; + content+=""; + content+=""; content+=""; - content+=""; - content+=""; + content+=""; + content+=""; content+="\r\n"; // get count of identities we are showing - sql="SELECT COUNT(*) FROM tblIdentity LEFT JOIN (SELECT IdentityID FROM tblIdentityTrust WHERE LocalIdentityID=?) AS 'tblIdentityTrust' ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID "; - sql+="WHERE tblIdentity.Hidden='false'"; + sql="SELECT COUNT(*) FROM tblIdentity LEFT JOIN tblIdentityTrust ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID "; + sql+="WHERE tblIdentityTrust.LocalIdentityID=? AND tblIdentity.Hidden='false'"; if(namesearch!="") { sql+=" AND (Name LIKE '%' || ? || '%' OR PublicKey LIKE '%' || ? || '%')"; @@ -297,8 +315,8 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s st.Finalize(); sql="SELECT tblIdentity.IdentityID,Name,tblIdentityTrust.LocalMessageTrust,PeerMessageTrust,tblIdentityTrust.LocalTrustListTrust,PeerTrustListTrust,PublicKey,tblIdentityTrust.MessageTrustComment,tblIdentityTrust.TrustListTrustComment,COUNT(MessageID) AS 'MessageCount',tblIdentity.PublishTrustList "; - sql+="FROM tblIdentity LEFT JOIN (SELECT LocalIdentityID,IdentityID,LocalMessageTrust,LocalTrustListTrust,MessageTrustComment,TrustListTrustComment FROM tblIdentityTrust WHERE LocalIdentityID=?) AS tblIdentityTrust ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID "; - sql+="WHERE tblIdentity.Hidden='false'"; + sql+="FROM tblIdentity LEFT JOIN tblIdentityTrust ON tblIdentity.IdentityID=tblIdentityTrust.IdentityID LEFT JOIN tblMessage ON tblIdentity.IdentityID=tblMessage.IdentityID "; + sql+="WHERE tblIdentityTrust.LocalIdentityID=? AND tblIdentity.Hidden='false'"; if(namesearch!="") { sql+=" AND (Name LIKE '%' || ? || '%' OR PublicKey LIKE '%' || ? || '%')"; @@ -407,7 +425,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s if(startrow>0) { StringFunctions::Convert(startrow-rowsperpage,tempstr); - content+=""; + content+=""; cols+=3; } if(startrow+rowsperpageNext Page -->"; + content+=""; } content+=""; } @@ -426,7 +444,7 @@ const std::string PeerTrustPage::GeneratePage(const std::string &method, const s content+="
NameLocal Message Trust
NameLocal Message TrustMessage CommentPeer Message TrustLocal Trust List TrustPeer Message TrustLocal Trust List TrustTrust CommentPeer Trust List TrustMessage CountPeer Trust List TrustMessage Count
<-- Previous Page<-- Previous PageNext Page -->
"; 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 PeerTrustPage::GetClassString(const std::string &trustlevel) @@ -466,15 +484,3 @@ const std::string PeerTrustPage::ReverseSort(const std::string &sortname, const return currentsortorder; } } - -const bool PeerTrustPage::WillHandleURI(const std::string &uri) -{ - if(uri.find("peertrust.")!=std::string::npos) - { - return true; - } - else - { - return false; - } -}