#include <xmem.h>\r
#endif\r
\r
-TrustExtension::TrustExtension()\r
+TrustExtension::TrustExtension(SQLite3DB::DB *db):IDatabase(db)\r
{\r
m_localidentityid=-1;\r
}\r
\r
-TrustExtension::TrustExtension(const int &localidentityid)\r
+TrustExtension::TrustExtension(SQLite3DB::DB *db, const int &localidentityid):IDatabase(db)\r
{\r
m_localidentityid=localidentityid;\r
}\r
}\r
}\r
\r
-const bool TrustExtension::GetTrustList(std::map<std::string,std::pair<int,int> > &trustlist)\r
+const bool TrustExtension::GetTrustList(std::map<std::string,trust> &trustlist)\r
{\r
if(m_localidentityid>=0)\r
{\r
- SQLite3DB::Statement st=m_db->Prepare("SELECT tblIdentityTrust.LocalMessageTrust,tblIdentityTrust.LocalTrustListTrust,tblIdentity.Name,tblIdentity.PublicKey FROM tblIdentityTrust INNER JOIN tblIdentity ON tblIdentityTrust.IdentityID=tblIdentity.IdentityID WHERE tblIdentityTrust.LocalIdentityID=? AND tblIdentity.Name IS NOT NULL AND tblIdentity.PublicKey IS NOT NULL AND tblIdentity.PublicKey <> '' ;");\r
+ SQLite3DB::Statement st=m_db->Prepare("SELECT tblIdentityTrust.LocalMessageTrust,tblIdentityTrust.LocalTrustListTrust,tblIdentity.Name,tblIdentity.PublicKey,tblIdentityTrust.MessageTrustComment,tblIdentityTrust.TrustListTrustComment,tblIdentity.PeerMessageTrust,tblIdentity.PeerTrustListTrust FROM tblIdentityTrust INNER JOIN tblIdentity ON tblIdentityTrust.IdentityID=tblIdentity.IdentityID WHERE tblIdentityTrust.LocalIdentityID=? AND tblIdentity.Name IS NOT NULL AND tblIdentity.PublicKey IS NOT NULL AND tblIdentity.PublicKey <> '' ;");\r
st.Bind(0,m_localidentityid);\r
st.Step();\r
while(st.RowReturned())\r
{\r
int messagetrust=-1;\r
int trustlisttrust=-1;\r
+ int peermessagetrust=-1;\r
+ int peertrustlisttrust=-1;\r
+ std::string messagetrustcomment="";\r
+ std::string trustlisttrustcomment="";\r
std::string name="";\r
std::string publickey="";\r
std::vector<std::string> keyparts;\r
}\r
st.ResultText(2,name);\r
st.ResultText(3,publickey);\r
+ st.ResultText(4,messagetrustcomment);\r
+ st.ResultText(5,trustlisttrustcomment);\r
+ if(st.ResultNull(6)==false)\r
+ {\r
+ st.ResultInt(6,peermessagetrust);\r
+ }\r
+ if(st.ResultNull(7)==false)\r
+ {\r
+ st.ResultInt(7,peertrustlisttrust);\r
+ }\r
\r
StringFunctions::SplitMultiple(publickey,"@,",keyparts);\r
if(keyparts.size()>1)\r
nntpname=name+"@"+keyparts[1];\r
}\r
\r
- trustlist[nntpname]=std::pair<int,int>(messagetrust,trustlisttrust);\r
+ trustlist[nntpname]=trust(messagetrust,peermessagetrust,messagetrustcomment,trustlisttrust,peertrustlisttrust,trustlisttrustcomment);\r
\r
st.Step();\r
}\r
}\r
}\r
\r
+const bool TrustExtension::SetMessageTrustComment(const std::string &nntpname, const std::string &comment)\r
+{\r
+ if(m_localidentityid>=0)\r
+ {\r
+ int id=GetIdentityID(nntpname);\r
+ if(id>=0)\r
+ {\r
+ SQLite3DB::Statement st=m_db->Prepare("UPDATE tblIdentityTrust SET MessageTrustComment=? WHERE LocalIdentityID=? AND IdentityID=?;");\r
+ if(comment=="")\r
+ {\r
+ st.Bind(0);\r
+ }\r
+ else\r
+ {\r
+ st.Bind(0,comment);\r
+ }\r
+ st.Bind(1,m_localidentityid);\r
+ st.Bind(2,id);\r
+ st.Step();\r
+\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+}\r
+\r
const bool TrustExtension::SetTrustListTrust(const std::string &nntpname, const int trust)\r
{\r
if(m_localidentityid>=0 && trust>=-1 && trust<=100)\r
return false;\r
}\r
}\r
+\r
+const bool TrustExtension::SetTrustListTrustComment(const std::string &nntpname, const std::string &comment)\r
+{\r
+ if(m_localidentityid>=0)\r
+ {\r
+ int id=GetIdentityID(nntpname);\r
+ if(id>=0)\r
+ {\r
+ SQLite3DB::Statement st=m_db->Prepare("UPDATE tblIdentityTrust SET TrustListTrustComment=? WHERE LocalIdentityID=? AND IdentityID=?;");\r
+ if(comment=="")\r
+ {\r
+ st.Bind(0);\r
+ }\r
+ else\r
+ {\r
+ st.Bind(0,comment);\r
+ }\r
+ st.Bind(1,m_localidentityid);\r
+ st.Bind(2,id);\r
+ st.Step();\r
+\r
+ return true;\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+ }\r
+ else\r
+ {\r
+ return false;\r
+ }\r
+}\r