1 #include "../../include/nntp/extensiontrust.h"
\r
2 #include "../../include/stringfunctions.h"
\r
8 TrustExtension::TrustExtension()
\r
10 m_localidentityid=-1;
\r
13 TrustExtension::TrustExtension(const int &localidentityid)
\r
15 m_localidentityid=localidentityid;
\r
18 const int TrustExtension::GetIdentityID(const std::string &nntpname)
\r
20 std::vector<std::string> nameparts;
\r
21 StringFunctions::Split(nntpname,"@",nameparts);
\r
23 SQLite3DB::Statement st=m_db->Prepare("SELECT IdentityID, PublicKey FROM tblIdentity WHERE Name=? AND PublicKey IS NOT NULL AND PublicKey <> '' ;");
\r
24 st.Bind(0,nameparts[0]);
\r
27 while(st.RowReturned())
\r
30 std::vector<std::string> keyparts;
\r
31 std::string publickey="";
\r
33 st.ResultText(1,publickey);
\r
34 StringFunctions::SplitMultiple(publickey,"@,",keyparts);
\r
36 if(keyparts.size()>1)
\r
38 if(nameparts[0]+"@"+keyparts[1]==nntpname)
\r
52 const bool TrustExtension::GetMessageTrust(const std::string &nntpname, int &trust)
\r
54 if(m_localidentityid>=0)
\r
56 int id=GetIdentityID(nntpname);
\r
59 SQLite3DB::Statement st=m_db->Prepare("SELECT LocalMessageTrust FROM tblIdentityTrust WHERE LocalIdentityID=? AND IdentityID=?;");
\r
60 st.Bind(0,m_localidentityid);
\r
64 if(st.RowReturned())
\r
67 if(st.ResultNull(0)==false)
\r
90 const bool TrustExtension::GetPeerMessageTrust(const std::string &nntpname, int &trust)
\r
92 if(m_localidentityid>=0)
\r
94 int id=GetIdentityID(nntpname);
\r
97 SQLite3DB::Statement st=m_db->Prepare("SELECT PeerMessageTrust FROM tblIdentity WHERE IdentityID=?;");
\r
101 if(st.RowReturned())
\r
104 if(st.ResultNull(0)==false)
\r
106 st.ResultInt(0,tr);
\r
127 const bool TrustExtension::GetPeerTrustListTrust(const std::string &nntpname, int &trust)
\r
129 if(m_localidentityid>=0)
\r
131 int id=GetIdentityID(nntpname);
\r
134 SQLite3DB::Statement st=m_db->Prepare("SELECT PeerTrustListTrust FROM tblIdentity WHERE IdentityID=?;");
\r
138 if(st.RowReturned())
\r
141 if(st.ResultNull(0)==false)
\r
143 st.ResultInt(0,tr);
\r
164 const bool TrustExtension::GetTrustList(std::map<std::string,trust> &trustlist)
\r
166 if(m_localidentityid>=0)
\r
168 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
169 st.Bind(0,m_localidentityid);
\r
171 while(st.RowReturned())
\r
173 int messagetrust=-1;
\r
174 int trustlisttrust=-1;
\r
175 int peermessagetrust=-1;
\r
176 int peertrustlisttrust=-1;
\r
177 std::string messagetrustcomment="";
\r
178 std::string trustlisttrustcomment="";
\r
179 std::string name="";
\r
180 std::string publickey="";
\r
181 std::vector<std::string> keyparts;
\r
182 std::string nntpname="";
\r
184 if(st.ResultNull(0)==false)
\r
186 st.ResultInt(0,messagetrust);
\r
188 if(st.ResultNull(1)==false)
\r
190 st.ResultInt(1,trustlisttrust);
\r
192 st.ResultText(2,name);
\r
193 st.ResultText(3,publickey);
\r
194 st.ResultText(4,messagetrustcomment);
\r
195 st.ResultText(5,trustlisttrustcomment);
\r
196 if(st.ResultNull(6)==false)
\r
198 st.ResultInt(6,peermessagetrust);
\r
200 if(st.ResultNull(7)==false)
\r
202 st.ResultInt(7,peertrustlisttrust);
\r
205 StringFunctions::SplitMultiple(publickey,"@,",keyparts);
\r
206 if(keyparts.size()>1)
\r
208 nntpname=name+"@"+keyparts[1];
\r
211 trustlist[nntpname]=trust(messagetrust,peermessagetrust,messagetrustcomment,trustlisttrust,peertrustlisttrust,trustlisttrustcomment);
\r
223 const bool TrustExtension::GetTrustListTrust(const std::string &nntpname, int &trust)
\r
225 if(m_localidentityid>=0)
\r
227 int id=GetIdentityID(nntpname);
\r
230 SQLite3DB::Statement st=m_db->Prepare("SELECT LocalTrustListTrust FROM tblIdentityTrust WHERE LocalIdentityID=? AND IdentityID=?;");
\r
231 st.Bind(0,m_localidentityid);
\r
235 if(st.RowReturned())
\r
238 if(st.ResultNull(0)==false)
\r
240 st.ResultInt(0,tr);
\r
261 const bool TrustExtension::SetMessageTrust(const std::string &nntpname, const int trust)
\r
263 if(m_localidentityid>=0 && trust>=-1 && trust<=100)
\r
265 int id=GetIdentityID(nntpname);
\r
268 SQLite3DB::Statement st=m_db->Prepare("UPDATE tblIdentityTrust SET LocalMessageTrust=? WHERE LocalIdentityID=? AND IdentityID=?;");
\r
277 st.Bind(1,m_localidentityid);
\r
294 const bool TrustExtension::SetMessageTrustComment(const std::string &nntpname, const std::string &comment)
\r
296 if(m_localidentityid>=0)
\r
298 int id=GetIdentityID(nntpname);
\r
301 SQLite3DB::Statement st=m_db->Prepare("UPDATE tblIdentityTrust SET MessageTrustComment=? WHERE LocalIdentityID=? AND IdentityID=?;");
\r
308 st.Bind(0,comment);
\r
310 st.Bind(1,m_localidentityid);
\r
327 const bool TrustExtension::SetTrustListTrust(const std::string &nntpname, const int trust)
\r
329 if(m_localidentityid>=0 && trust>=-1 && trust<=100)
\r
331 int id=GetIdentityID(nntpname);
\r
334 SQLite3DB::Statement st=m_db->Prepare("UPDATE tblIdentityTrust SET LocalTrustListTrust=? WHERE LocalIdentityID=? AND IdentityID=?;");
\r
343 st.Bind(1,m_localidentityid);
\r
360 const bool TrustExtension::SetTrustListTrustComment(const std::string &nntpname, const std::string &comment)
\r
362 if(m_localidentityid>=0)
\r
364 int id=GetIdentityID(nntpname);
\r
367 SQLite3DB::Statement st=m_db->Prepare("UPDATE tblIdentityTrust SET TrustListTrustComment=? WHERE LocalIdentityID=? AND IdentityID=?;");
\r
374 st.Bind(0,comment);
\r
376 st.Bind(1,m_localidentityid);
\r