10152ba9c479d7346af2ca1ad72334ce54c9dc02
[fms.git] / src / http / pages / createidentitypage.cpp
1 #include "../../../include/http/pages/createidentitypage.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 CreateIdentityPage::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=="create" && ValidateFormPassword(queryvars))\r
16         {\r
17                 SQLite3DB::Statement st=m_db->Prepare("INSERT INTO tblLocalIdentity(Name,PublishTrustList,DateCreated) VALUES(?,'false',?);");\r
18                 std::string name="";\r
19                 Poco::DateTime date;\r
20 \r
21                 if(queryvars.find("name")!=queryvars.end())\r
22                 {\r
23                         name=(*queryvars.find("name")).second;\r
24                 }\r
25 \r
26                 st.Bind(0,name);\r
27                 st.Bind(1,Poco::DateTimeFormatter::format(date,"%Y-%m-%d %H:%M:%S"));\r
28                 st.Step();\r
29 \r
30                 // insert all identities not in trust list already\r
31                 m_db->Execute("INSERT INTO tblIdentityTrust(LocalIdentityID,IdentityID) SELECT LocalIdentityID,IdentityID FROM tblLocalIdentity,tblIdentity WHERE LocalIdentityID || '_' || IdentityID NOT IN (SELECT LocalIdentityID || '_' || IdentityID FROM tblIdentityTrust);");\r
32 \r
33                 content+="<h2>Created Identity</h2>";\r
34         }\r
35         else\r
36         {\r
37                 content+="<h2>Create Identity</h2>";\r
38                 content+="<form name=\"frmcreateidentity\" method=\"POST\">";\r
39                 content+=CreateFormPassword();\r
40                 content+="<input type=\"hidden\" name=\"formaction\" value=\"create\">";\r
41                 content+="Name : <input type=\"text\" name=\"name\" maxlength=\"40\">";\r
42                 content+=" <input type=\"submit\" value=\"Create\">";\r
43                 content+="</form>";\r
44         }\r
45 \r
46         return StringFunctions::Replace(m_template,"[CONTENT]",content);\r
47 }\r
48 \r
49 const bool CreateIdentityPage::WillHandleURI(const std::string &uri)\r
50 {\r
51         if(uri.find("createidentity.")!=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