- if(queryvars.find("formaction")!=queryvars.end())\r
- {\r
- int id;\r
- std::vector<std::string> ids;\r
- std::vector<std::string> singleuse;\r
- std::vector<std::string> publishtrustlist;\r
- std::vector<std::string> publishboardlist;\r
- std::vector<std::string> publishfreesite;\r
-\r
- CreateArgArray(queryvars,"chkidentityid",ids);\r
- CreateArgArray(queryvars,"singleuse",singleuse);\r
- CreateArgArray(queryvars,"publishtrustlist",publishtrustlist);\r
- CreateArgArray(queryvars,"publishboardlist",publishboardlist);\r
- CreateArgArray(queryvars,"publishfreesite",publishfreesite);\r
-\r
- if((*queryvars.find("formaction")).second=="update")\r
- {\r
- SQLite3DB::Statement update=m_db->Prepare("UPDATE tblLocalIdentity SET SingleUse=?, PublishTrustList=?, PublishBoardList=?, PublishFreesite=? WHERE LocalIdentityID=?;");\r
- for(int i=0; i<ids.size(); i++)\r
- {\r
- if(ids[i]!="")\r
- {\r
- StringFunctions::Convert(ids[i],id);\r
- update.Bind(0,singleuse[i]);\r
- update.Bind(1,publishtrustlist[i]);\r
- update.Bind(2,publishboardlist[i]);\r
- update.Bind(3,publishfreesite[i]);\r
- update.Bind(4,id);\r
- update.Step();\r
- update.Reset();\r
- }\r
- }\r
- }\r
- if((*queryvars.find("formaction")).second=="delete")\r
- {\r
- SQLite3DB::Statement del=m_db->Prepare("DELETE FROM tblLocalIdentity WHERE LocalIdentityID=?;");\r
- for(int i=0; i<ids.size(); i++)\r
- {\r
- if(ids[i]!="")\r
- {\r
- StringFunctions::Convert(ids[i],id);\r
- del.Bind(0,id);\r
- del.Step();\r
- del.Reset();\r
- }\r
- }\r
- }\r
- if((*queryvars.find("formaction")).second=="export")\r
- {\r
- IdentityExportXML xml;\r
- SQLite3DB::Statement exp=m_db->Prepare("SELECT Name,PublicKey,PrivateKey,SingleUse,PublishTrustList,PublishBoardList,PublishFreesite FROM tblLocalIdentity WHERE PublicKey IS NOT NULL AND PrivateKey IS NOT NULL;");\r
- exp.Step();\r
- while(exp.RowReturned())\r
- {\r
- std::string name="";\r
- std::string publickey="";\r
- std::string privatekey="";\r
- std::string tempval="";\r
- bool singleuse=false;\r
- bool publishtrustlist=false;\r
- bool publishboardlist=false;\r
- bool publishfreesite=false;\r
-\r
- exp.ResultText(0,name);\r
- exp.ResultText(1,publickey);\r
- exp.ResultText(2,privatekey);\r
- exp.ResultText(3,tempval);\r
- if(tempval=="true")\r
- {\r
- singleuse=true;\r
- }\r
- exp.ResultText(4,tempval);\r
- if(tempval=="true")\r
- {\r
- publishtrustlist=true;\r
- }\r
- exp.ResultText(5,tempval);\r
- if(tempval=="true")\r
- {\r
- publishboardlist=true;\r
- }\r
- exp.ResultText(6,tempval);\r
- if(tempval=="true")\r
- {\r
- publishfreesite=true;\r
- }\r
-\r
- xml.AddIdentity(name,publickey,privatekey,singleuse,publishtrustlist,publishboardlist,publishfreesite);\r
-\r
- exp.Step();\r
- }\r
- return "HTTP/1.1 200 OK\r\nContent-Type: text/xml\r\nContent-Disposition: attachment; filename=identities.xml\r\n\r\n"+xml.GetXML();\r
- }\r
- if((*queryvars.find("formaction")).second=="import")\r
- {\r
- if(queryvars.find("file")!=queryvars.end())\r
- {\r
- IdentityExportXML xml;\r
- if(xml.ParseXML((*queryvars.find("file")).second))\r
- {\r
- SQLite3DB::Statement imp=m_db->Prepare("INSERT INTO tblLocalIdentity(Name,PublicKey,PrivateKey,SingleUse,PublishTrustList,PublishBoardList,PublishFreesite) VALUES(?,?,?,?,?,?,?);");\r
- for(int i=0; i<xml.GetCount(); i++)\r
- {\r
- std::string tempval="false";\r
- imp.Bind(0,xml.GetName(i));\r
- imp.Bind(1,xml.GetPublicKey(i));\r
- imp.Bind(2,xml.GetPrivateKey(i));\r
- if(xml.GetSingleUse(i))\r
- {\r
- tempval="true";\r
- }\r
- else\r
- {\r
- tempval="false";\r
- }\r
- imp.Bind(3,tempval);\r
- if(xml.GetPublishTrustList(i))\r
- {\r
- tempval="true";\r
- }\r
- else\r
- {\r
- tempval="false";\r
- }\r
- imp.Bind(4,tempval);\r
- if(xml.GetPublishBoardList(i))\r
- {\r
- tempval="true";\r
- }\r
- else\r
- {\r
- tempval="false";\r
- }\r
- imp.Bind(5,tempval);\r
- if(xml.GetPublishFreesite(i))\r
- {\r
- tempval="true";\r
- }\r
- else\r
- {\r
- tempval="false";\r
- }\r
- imp.Bind(6,tempval);\r
- imp.Step();\r
- imp.Reset();\r
- }\r
- }\r
- }\r
- }\r
- }\r
-\r