version 0.3.13
[fms.git] / src / http / pages / addpeerpage.cpp
1 #include "../../../include/http/pages/addpeerpage.h"\r
2 #include "../../../include/stringfunctions.h"\r
3 \r
4 #include <Poco/DateTime.h>\r
5 #include <Poco/DateTimeFormatter.h>\r
6 \r
7 #ifdef XMEM\r
8         #include <xmem.h>\r
9 #endif\r
10 \r
11 const std::string AddPeerPage::GeneratePage(const std::string &method, const std::map<std::string,std::string> &queryvars)\r
12 {\r
13         std::string content="";\r
14 \r
15         if(queryvars.find("formaction")!=queryvars.end() && (*queryvars.find("formaction")).second=="add" && ValidateFormPassword(queryvars))\r
16         {\r
17                 Poco::DateTime date;\r
18                 std::string publickey="";\r
19                 if(queryvars.find("publickey")!=queryvars.end())\r
20                 {\r
21                         publickey=(*queryvars.find("publickey")).second;\r
22                 }\r
23                 if(publickey!="" && publickey.find("SSK@")==0 && publickey[publickey.size()-1]=='/')\r
24                 {\r
25                         SQLite3DB::Statement st=m_db->Prepare("INSERT INTO tblIdentity(PublicKey,DateAdded,AddedMethod) VALUES(?,?,?);");\r
26                         st.Bind(0,publickey);\r
27                         st.Bind(1,Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S"));\r
28                         st.Bind(2,"manually");\r
29                         st.Step();\r
30                         st.Reset();\r
31                 }\r
32         }\r
33 \r
34         content+="<h2>Add Peer</h2>";\r
35         content+="<form name=\"frmaddpeer\" method=\"POST\">";\r
36         content+=CreateFormPassword();\r
37         content+="<input type=\"hidden\" name=\"formaction\" value=\"add\">";\r
38         content+="Public Key : ";\r
39         content+="<input type=\"text\" name=\"publickey\" size=\"100\">";\r
40         content+="<br>";\r
41         content+="The public key must be a valid SSK public key and include the / at the end";\r
42         content+="<br>";\r
43         content+="<input type=\"submit\" value=\"Add\">";\r
44         content+="</form>";\r
45 \r
46         return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
47 }\r
48 \r
49 const bool AddPeerPage::WillHandleURI(const std::string &uri)\r
50 {\r
51         if(uri.find("addpeer.")!=std::string::npos)\r
52         {\r
53                 return true;\r
54         }\r
55         else\r
56         {\r
57                 return false;\r
58         }\r
59 }\r