version 0.2.19
[fms.git] / src / nntp / extensiontrust.cpp
index 8a50beb..eb0a765 100644 (file)
@@ -161,17 +161,21 @@ const bool TrustExtension::GetPeerTrustListTrust(const std::string &nntpname, in
        }\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
@@ -187,6 +191,16 @@ const bool TrustExtension::GetTrustList(std::map<std::string,std::pair<int,int>
                        }\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
@@ -194,7 +208,7 @@ const bool TrustExtension::GetTrustList(std::map<std::string,std::pair<int,int>
                                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
@@ -277,6 +291,39 @@ const bool TrustExtension::SetMessageTrust(const std::string &nntpname, const in
        }\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
@@ -309,3 +356,36 @@ const bool TrustExtension::SetTrustListTrust(const std::string &nntpname, const
                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