version 0.3.29
[fms.git] / src / http / pages / peerdetailspage.cpp
index 842df31..a569bd9 100644 (file)
@@ -20,9 +20,17 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
        std::string dateadded="";\r
        std::string addedmethod="";\r
        std::string usk="";\r
-       std::string fcphost="";\r
+       std::string fcphost="127.0.0.1";\r
        std::string hidden="";\r
        int freesiteedition=-1;\r
+       std::string publishtrustlist="";\r
+       std::string messagebase="";\r
+\r
+       Option option(m_db);\r
+       std::string fproxyport="8888";\r
+       option.Get("FProxyPort",fproxyport);\r
+       option.Get("MessageBase",messagebase);\r
+       option.Get("FCPHost",fcphost);\r
 \r
        if(queryvars.find("identityid")!=queryvars.end() && (*queryvars.find("identityid")).second!="")\r
        {\r
@@ -30,30 +38,28 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                StringFunctions::Convert((*queryvars.find("identityid")).second,identityid);\r
        }\r
 \r
-       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="deletemessages")\r
+       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="deletemessages" && ValidateFormPassword(queryvars))\r
        {\r
                SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblMessage WHERE IdentityID=?;");\r
                del.Bind(0,identityid);\r
                del.Step();\r
        }\r
 \r
-       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="hide")\r
+       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="hide" && ValidateFormPassword(queryvars))\r
        {\r
                SQLite3DB::Statement del=m_db->Prepare("UPDATE tblIdentity SET Hidden='true' WHERE IdentityID=?;");\r
                del.Bind(0,identityid);\r
                del.Step();\r
        }\r
        \r
-       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="show")\r
+       if(identityid!=0 && queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="show" && ValidateFormPassword(queryvars))\r
        {\r
                SQLite3DB::Statement del=m_db->Prepare("UPDATE tblIdentity SET Hidden='false' WHERE IdentityID=?;");\r
                del.Bind(0,identityid);\r
                del.Step();\r
        }\r
 \r
-       Option::Instance()->Get("FCPHost",fcphost);\r
-\r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,DateAdded,LastSeen,AddedMethod,Hidden,FreesiteEdition FROM tblIdentity WHERE IdentityID=?;");\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT Name,PublicKey,DateAdded,LastSeen,AddedMethod,Hidden,FreesiteEdition,PublishTrustList FROM tblIdentity WHERE IdentityID=?;");\r
        st.Bind(0,identityid);\r
        st.Step();\r
 \r
@@ -70,13 +76,12 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                {\r
                        st.ResultInt(6,freesiteedition);\r
                }\r
+               st.ResultText(7,publishtrustlist);\r
 \r
                usk=publickey;\r
                if(freesiteedition>=0 && usk.find("SSK@")==0)\r
                {\r
-                       std::string messagebase="";\r
                        std::string editionstr="";\r
-                       Option::Instance()->Get("MessageBase",messagebase);\r
                        usk.erase(0,3);\r
                        StringFunctions::Convert(freesiteedition,editionstr);\r
                        usk="USK"+usk+messagebase+"/"+editionstr+"/";\r
@@ -90,7 +95,16 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                content+="<tr><td>Public Key</td><td class=\"smaller\">"+SanitizeOutput(publickey)+"</td></tr>";\r
                if(usk!="")\r
                {\r
-                       content+="<tr><td>Freesite</td><td class=\"smaller\"><a href=\"http://"+fcphost+":8888/"+SanitizeOutput(usk)+"\">"+SanitizeOutput(usk)+"</a></td></tr>";\r
+                       content+="<tr><td>Freesite</td><td class=\"smaller\"><a href=\"http://"+fcphost+":"+fproxyport+"/"+SanitizeOutput(usk)+"\">"+SanitizeOutput(usk)+"</a></td></tr>";\r
+               }\r
+               if(publishtrustlist=="true")\r
+               {\r
+                       std::string lastseendate=lastseen;\r
+                       if(lastseendate.size()>=10)\r
+                       {\r
+                               lastseendate=lastseendate.substr(0,10);\r
+                       }\r
+                       content+="<tr><td>Trust List XML</td><td class=\"smaller\"><a href=\"http://"+fcphost+":"+fproxyport+"/"+SanitizeOutput(publickey)+messagebase+"|"+lastseendate+"|TrustList|0.xml\">Trust List</a></td></tr>";\r
                }\r
                content+="<tr><td>Date Added</td><td>"+dateadded+"</td></tr>";\r
                content+="<tr><td>Last Seen</td><td>"+lastseen+"</td></tr>";\r
@@ -98,6 +112,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                content+="<tr><td>Hidden in Main Peer Trust Page</td>";\r
                content+="<td>"+hidden;\r
                content+="&nbsp;<form name=\"frmhidden\" method=\"POST\">";\r
+               content+=CreateFormPassword();\r
                content+="<input type=\"hidden\" name=\"identityid\" value=\""+identityidstr+"\">";\r
                if(hidden=="false")\r
                {\r
@@ -126,6 +141,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
                content+="<td>Message Count</td>";\r
                content+="<td>"+messagecountstr;\r
                content+="&nbsp;&nbsp;<form name=\"frmdeletemessages\" method=\"POST\">";\r
+               content+=CreateFormPassword();\r
                content+="<input type=\"hidden\" name=\"identityid\" value=\""+identityidstr+"\">";\r
                content+="<input type=\"hidden\" name=\"formaction\" value=\"deletemessages\">";\r
                content+="<input type=\"submit\" value=\"Delete Messages\">";\r
@@ -206,7 +222,7 @@ const std::string PeerDetailsPage::GeneratePage(const std::string &method, const
        }\r
        content+="</table>";\r
 \r
-       return "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n"+StringFunctions::Replace(m_template,"[CONTENT]",content);\r
+       return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
 }\r
 \r
 const std::string PeerDetailsPage::GetClassString(const std::string &trustlevel)\r