From 742a7648a4b7d0999670f4fbfaf07935c0f07417 Mon Sep 17 00:00:00 2001 From: csoler Date: Mon, 26 Dec 2016 15:59:53 +0100 Subject: [PATCH] added display of warning for non forwarded posts --- libretroshare/src/gxs/rsgenexchange.cc | 4 + libretroshare/src/gxs/rsgenexchange.h | 1 + libretroshare/src/gxs/rsgxsnetservice.cc | 29 ++---- libretroshare/src/gxs/rsnxs.h | 46 ++++++++++ libretroshare/src/retroshare/rsgxsforums.h | 35 ++++---- libretroshare/src/retroshare/rsgxsiface.h | 3 + .../src/retroshare/rsgxsifacehelper.h | 5 ++ retroshare-gui/src/gui/Identity/IdDialog.cpp | 6 +- .../gui/gxsforums/GxsForumThreadWidget.cpp | 83 +++++++++++++++--- retroshare-gui/src/gui/icons.qrc | 2 + .../src/gui/icons/warning_red_128.png | Bin 0 -> 27339 bytes .../src/gui/icons/warning_yellow_128.png | Bin 0 -> 25848 bytes 12 files changed, 160 insertions(+), 54 deletions(-) create mode 100644 retroshare-gui/src/gui/icons/warning_red_128.png create mode 100644 retroshare-gui/src/gui/icons/warning_yellow_128.png diff --git a/libretroshare/src/gxs/rsgenexchange.cc b/libretroshare/src/gxs/rsgenexchange.cc index 25d4e52d8..b002638da 100644 --- a/libretroshare/src/gxs/rsgenexchange.cc +++ b/libretroshare/src/gxs/rsgenexchange.cc @@ -1614,6 +1614,10 @@ uint32_t RsGenExchange::getDefaultSyncPeriod() } } +RsReputations::ReputationLevel RsGenExchange::minReputationForForwardingMessages(uint32_t group_sign_flags,uint32_t identity_sign_flags) +{ + return RsNetworkExchangeService::minReputationForForwardingMessages(group_sign_flags,identity_sign_flags); +} uint32_t RsGenExchange::getSyncPeriod(const RsGxsGroupId& grpId) { RS_STACK_MUTEX(mGenMtx) ; diff --git a/libretroshare/src/gxs/rsgenexchange.h b/libretroshare/src/gxs/rsgenexchange.h index 0614ed2b1..95efbf2e1 100644 --- a/libretroshare/src/gxs/rsgenexchange.h +++ b/libretroshare/src/gxs/rsgenexchange.h @@ -658,6 +658,7 @@ public: uint16_t serviceType() const { return mServType ; } uint32_t serviceFullType() const { return ((uint32_t)mServType << 8) + (((uint32_t) RS_PKT_VERSION_SERVICE) << 24); } + virtual RsReputations::ReputationLevel minReputationForForwardingMessages(uint32_t group_sign_flags,uint32_t identity_flags); protected: /** Notifications **/ diff --git a/libretroshare/src/gxs/rsgxsnetservice.cc b/libretroshare/src/gxs/rsgxsnetservice.cc index a9c55eae0..f8fa8ecc2 100644 --- a/libretroshare/src/gxs/rsgxsnetservice.cc +++ b/libretroshare/src/gxs/rsgxsnetservice.cc @@ -4210,18 +4210,10 @@ void RsGxsNetService::handleRecvSyncMessage(RsNxsSyncMsgReqItem *item,bool item_ if(canSendMsgIds(msgMetas, *grpMeta, peer, should_encrypt_to_this_circle_id)) { - RsReputations::ReputationLevel min_rep_for_anonymous ; - RsReputations::ReputationLevel min_rep_for_unknown_signed ; - - min_rep_for_anonymous = (grpMeta->mSignFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG )?RsReputations::REPUTATION_REMOTELY_POSITIVE: RsReputations::REPUTATION_REMOTELY_NEGATIVE; - min_rep_for_unknown_signed = (grpMeta->mSignFlags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG_KNOWN)?RsReputations::REPUTATION_REMOTELY_POSITIVE: RsReputations::REPUTATION_REMOTELY_NEGATIVE; - for(std::vector::iterator vit = msgMetas.begin();vit != msgMetas.end(); ++vit) { RsGxsMsgMetaData* m = *vit; - // if anti-spam is enabled, do not send messages from authors with bad reputation - RsIdentityDetails details ; if(!rsIdentity->getIdDetails(m->mAuthorId,details)) @@ -4229,21 +4221,14 @@ void RsGxsNetService::handleRecvSyncMessage(RsNxsSyncMsgReqItem *item,bool item_ std::cerr << /* GXSNETDEBUG_PG(item->PeerId(),item->grpId) << */ " not sending grp message ID " << (*vit)->mMsgId << ", because the identity of the author is not accessible (unknown/not cached)" << std::endl; continue ; } - if(!(details.mFlags & RS_IDENTITY_FLAGS_PGP_LINKED) && details.mReputation.mOverallReputationLevel < min_rep_for_anonymous) - { -//#ifdef NXS_NET_DEBUG_0 - std::cerr << /* GXSNETDEBUG_PG(item->PeerId(),item->grpId) << */ " not sending item ID " << (*vit)->mMsgId << ", because the author is anonymous has reputation level " << details.mReputation.mOverallReputationLevel << std::endl; -//#endif - continue ; - } - if(!(details.mFlags & RS_IDENTITY_FLAGS_PGP_KNOWN) && details.mReputation.mOverallReputationLevel < min_rep_for_unknown_signed) - { -//#ifdef NXS_NET_DEBUG_0 - std::cerr << /* GXSNETDEBUG_PG(item->PeerId(),item->grpId) << */ " not sending item ID " << (*vit)->mMsgId << ", because the author is signed by unknown key, and has reputation level " << details.mReputation.mOverallReputationLevel << std::endl; -//#endif - continue ; - } + if(details.mReputation.mOverallReputationLevel < minReputationForForwardingMessages(grpMeta->mSignFlags, details.mFlags)) + { +//#ifdef NXS_NET_DEBUG_0 + std::cerr << /* GXSNETDEBUG_PG(item->PeerId(),item->grpId) << */ " not sending item ID " << (*vit)->mMsgId << ", because the author is flags " << std::hex << details.mFlags << std::dec << " and reputation level " << details.mReputation.mOverallReputationLevel << std::endl; +//#endif + continue ; + } // Check publish TS if(item->createdSinceTS > (*vit)->mPublishTs) diff --git a/libretroshare/src/gxs/rsnxs.h b/libretroshare/src/gxs/rsnxs.h index 0613560b0..995377ed3 100644 --- a/libretroshare/src/gxs/rsnxs.h +++ b/libretroshare/src/gxs/rsnxs.h @@ -34,6 +34,8 @@ #include #include "services/p3service.h" +#include "retroshare/rsreputations.h" +#include "retroshare/rsidentity.h" #include "rsgds.h" /*! @@ -159,6 +161,50 @@ public: * \return */ virtual bool stampMsgServerUpdateTS(const RsGxsGroupId& gid) =0; + + /*! + * \brief minReputationForForwardingMessages + * Encodes the policy for sending/requesting messages depending on anti-spam settings. + * + * \param group_sign_flags Sign flags from the group meta data + * \param identity_flags Flags of the identity + * \return + */ + static RsReputations::ReputationLevel minReputationForRequestingMessages(uint32_t /* group_sign_flags */, uint32_t /* identity_flags */) + { + // We always request messages, except if the author identity is locally banned. + + return RsReputations::REPUTATION_REMOTELY_NEGATIVE; + } + static RsReputations::ReputationLevel minReputationForForwardingMessages(uint32_t group_sign_flags, uint32_t identity_flags) + { + // If anti-spam is enabled, do not send messages from authors with bad reputation. The policy is to only forward messages if the reputation of the author is at least + // equal to the minimal reputation in the table below (R=remotely, L=locally, P=positive, N=negative) : + // + // | Anonymous Signed Signed+Known + // -----------+----------------------------------------------------- + // NONE | RN RN RN + // GPG_AUTHED | RP RN RN + // GPG_KNOWN | RP RP RN + // + + if(identity_flags & RS_IDENTITY_FLAGS_PGP_KNOWN) + return RsReputations::REPUTATION_REMOTELY_NEGATIVE; + else if(identity_flags & RS_IDENTITY_FLAGS_PGP_LINKED) + { + if(group_sign_flags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG_KNOWN) + return RsReputations::REPUTATION_REMOTELY_POSITIVE; + else + return RsReputations::REPUTATION_REMOTELY_NEGATIVE; + } + else + { + if( (group_sign_flags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG_KNOWN) || (group_sign_flags & GXS_SERV::FLAG_AUTHOR_AUTHENTICATION_GPG)) + return RsReputations::REPUTATION_REMOTELY_POSITIVE; + else + return RsReputations::REPUTATION_REMOTELY_NEGATIVE; + } + } }; #endif // RSGNP_H diff --git a/libretroshare/src/retroshare/rsgxsforums.h b/libretroshare/src/retroshare/rsgxsforums.h index cf7ca26ef..e1835928e 100644 --- a/libretroshare/src/retroshare/rsgxsforums.h +++ b/libretroshare/src/retroshare/rsgxsforums.h @@ -61,37 +61,36 @@ std::ostream &operator<<(std::ostream &out, const RsGxsForumMsg &msg); class RsGxsForums: public RsGxsIfaceHelper { - public: +public: RsGxsForums(RsGxsIface *gxs) - :RsGxsIfaceHelper(gxs) { return; } -virtual ~RsGxsForums() { return; } + :RsGxsIfaceHelper(gxs) { return; } + virtual ~RsGxsForums() { return; } /* Specific Service Data */ -virtual bool getGroupData(const uint32_t &token, std::vector &groups) = 0; -virtual bool getMsgData(const uint32_t &token, std::vector &msgs) = 0; -//Not currently used -//virtual bool getRelatedMessages(const uint32_t &token, std::vector &msgs) = 0; + virtual bool getGroupData(const uint32_t &token, std::vector &groups) = 0; + virtual bool getMsgData(const uint32_t &token, std::vector &msgs) = 0; + //Not currently used + //virtual bool getRelatedMessages(const uint32_t &token, std::vector &msgs) = 0; - ////////////////////////////////////////////////////////////////////////////// -virtual void setMessageReadStatus(uint32_t& token, const RsGxsGrpMsgIdPair& msgId, bool read) = 0; + ////////////////////////////////////////////////////////////////////////////// + virtual void setMessageReadStatus(uint32_t& token, const RsGxsGrpMsgIdPair& msgId, bool read) = 0; -//virtual bool setMessageStatus(const std::string &msgId, const uint32_t status, const uint32_t statusMask); -//virtual bool setGroupSubscribeFlags(const std::string &groupId, uint32_t subscribeFlags, uint32_t subscribeMask); + //virtual bool setMessageStatus(const std::string &msgId, const uint32_t status, const uint32_t statusMask); + //virtual bool setGroupSubscribeFlags(const std::string &groupId, uint32_t subscribeFlags, uint32_t subscribeMask); -//virtual bool groupRestoreKeys(const std::string &groupId); -//virtual bool groupShareKeys(const std::string &groupId, std::list& peers); + //virtual bool groupRestoreKeys(const std::string &groupId); + //virtual bool groupShareKeys(const std::string &groupId, std::list& peers); -virtual bool createGroup(uint32_t &token, RsGxsForumGroup &group) = 0; -virtual bool createMsg(uint32_t &token, RsGxsForumMsg &msg) = 0; - -/*! + virtual bool createGroup(uint32_t &token, RsGxsForumGroup &group) = 0; + virtual bool createMsg(uint32_t &token, RsGxsForumMsg &msg) = 0; + /*! * To update forum group with new information * @param token the token used to check completion status of update * @param group group to be updated, groupId element must be set or will be rejected * @return false groupId not set, true if set and accepted (still check token for completion) */ -virtual bool updateGroup(uint32_t &token, RsGxsForumGroup &group) = 0; + virtual bool updateGroup(uint32_t &token, RsGxsForumGroup &group) = 0; }; diff --git a/libretroshare/src/retroshare/rsgxsiface.h b/libretroshare/src/retroshare/rsgxsiface.h index 8eb1ac6ae..3e2ae55ae 100644 --- a/libretroshare/src/retroshare/rsgxsiface.h +++ b/libretroshare/src/retroshare/rsgxsiface.h @@ -27,6 +27,7 @@ #ifndef RSGXSIFACE_H_ #define RSGXSIFACE_H_ +#include "retroshare/rsreputations.h" #include "retroshare/rsgxsservice.h" #include "gxs/rsgxsdata.h" #include "retroshare/rsgxsifacetypes.h" @@ -181,6 +182,8 @@ public: virtual uint32_t getDefaultSyncPeriod() = 0; virtual uint32_t getSyncPeriod(const RsGxsGroupId& grpId) = 0; virtual void setSyncPeriod(const RsGxsGroupId& grpId,uint32_t age_in_secs) = 0; + + virtual RsReputations::ReputationLevel minReputationForForwardingMessages(uint32_t group_sign_flags,uint32_t identity_flags)=0; }; diff --git a/libretroshare/src/retroshare/rsgxsifacehelper.h b/libretroshare/src/retroshare/rsgxsifacehelper.h index e23f1aeb1..fbe12570e 100644 --- a/libretroshare/src/retroshare/rsgxsifacehelper.h +++ b/libretroshare/src/retroshare/rsgxsifacehelper.h @@ -27,6 +27,7 @@ */ #include "retroshare/rsgxsiface.h" +#include "retroshare/rsreputations.h" #include "rsgxsflags.h" /*! @@ -236,6 +237,10 @@ public: mGxs->setSyncPeriod(grpId,age_in_secs); } + RsReputations::ReputationLevel minReputationForForwardingMessages(uint32_t group_sign_flags,uint32_t identity_flags) + { + return mGxs->minReputationForForwardingMessages(group_sign_flags,identity_flags); + } private: RsGxsIface* mGxs; diff --git a/retroshare-gui/src/gui/Identity/IdDialog.cpp b/retroshare-gui/src/gui/Identity/IdDialog.cpp index 5dc948599..ef1841375 100644 --- a/retroshare-gui/src/gui/Identity/IdDialog.cpp +++ b/retroshare-gui/src/gui/Identity/IdDialog.cpp @@ -1857,9 +1857,9 @@ void IdDialog::insertIdDetails(uint32_t token) switch(info.mOverallReputationLevel) { case RsReputations::REPUTATION_LOCALLY_POSITIVE: ui->overallOpinion_TF->setText(tr("Positive")) ; break ; - case RsReputations::REPUTATION_LOCALLY_NEGATIVE: ui->overallOpinion_TF->setText(tr("Negative (Banned)")) ; break ; - case RsReputations::REPUTATION_REMOTELY_POSITIVE: ui->overallOpinion_TF->setText(tr("Positive, according to your friends")) ; break ; - case RsReputations::REPUTATION_REMOTELY_NEGATIVE: ui->overallOpinion_TF->setText(tr("Negative, according to your friends")) ; break ; + case RsReputations::REPUTATION_LOCALLY_NEGATIVE: ui->overallOpinion_TF->setText(tr("Negative (Banned by you)")) ; break ; + case RsReputations::REPUTATION_REMOTELY_POSITIVE: ui->overallOpinion_TF->setText(tr("Positive (according to your friends)")) ; break ; + case RsReputations::REPUTATION_REMOTELY_NEGATIVE: ui->overallOpinion_TF->setText(tr("Negative (according to your friends)")) ; break ; default: case RsReputations::REPUTATION_NEUTRAL: ui->overallOpinion_TF->setText(tr("Neutral")) ; break ; } diff --git a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp index dff9e9607..7c115aecc 100644 --- a/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp +++ b/retroshare-gui/src/gui/gxsforums/GxsForumThreadWidget.cpp @@ -23,6 +23,7 @@ #include #include #include +#include #include "GxsForumThreadWidget.h" #include "ui_GxsForumThreadWidget.h" @@ -61,6 +62,9 @@ #define IMAGE_DOWNLOADALL ":/images/startall.png" #define IMAGE_COPYLINK ":/images/copyrslink.png" #define IMAGE_BIOHAZARD ":/icons/yellow_biohazard64.png" +#define IMAGE_WARNING_YELLOW ":/icons/warning_yellow_128.png" +#define IMAGE_WARNING_RED ":/icons/warning_red_128.png" +#define IMAGE_VOID ":/icons/void_128.png" #define IMAGE_POSITIVE_OPINION ":/icons/png/thumbs-up.png" #define IMAGE_NEUTRAL_OPINION ":/icons/png/thumbs-neutral.png" #define IMAGE_NEGATIVE_OPINION ":/icons/png/thumbs-down.png" @@ -92,6 +96,45 @@ #define ROLE_THREAD_COUNT 4 +class DistributionItemDelegate: public QStyledItemDelegate +{ +public: + DistributionItemDelegate() {} + + virtual void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const + { + Q_ASSERT(index.isValid()); + + QStyleOptionViewItemV4 opt = option; + initStyleOption(&opt, index); + // disable default icon + opt.icon = QIcon(); + // draw default item + QApplication::style()->drawControl(QStyle::CE_ItemViewItem, &opt, painter, 0); + + const QRect r = option.rect; + + QIcon icon ; + + // get pixmap + unsigned int warning_level = qvariant_cast(index.data(Qt::DecorationRole)); + + switch(warning_level) + { + default: + case 0: icon = QIcon(IMAGE_VOID); break; + case 1: icon = QIcon(IMAGE_WARNING_YELLOW); break; + case 2: icon = QIcon(IMAGE_WARNING_RED); break; + } + + QPixmap pix = icon.pixmap(r.size()); + + // draw pixmap at center of item + const QPoint p = QPoint((r.width() - pix.width())/2, (r.height() - pix.height())/2); + painter->drawPixmap(r.topLeft() + p, pix); + } +}; + GxsForumThreadWidget::GxsForumThreadWidget(const RsGxsGroupId &forumId, QWidget *parent) : GxsMessageFrameWidget(rsGxsForums, parent), ui(new Ui::GxsForumThreadWidget) @@ -143,7 +186,7 @@ GxsForumThreadWidget::GxsForumThreadWidget(const RsGxsGroupId &forumId, QWidget mThreadCompareRole = new RSTreeWidgetItemCompareRole; mThreadCompareRole->setRole(COLUMN_THREAD_DATE, ROLE_THREAD_SORT); - ui->threadTreeWidget->setItemDelegateForColumn(COLUMN_THREAD_DISTRIBUTION,new ReputationItemDelegate(RsReputations::REPUTATION_NEUTRAL)) ; + ui->threadTreeWidget->setItemDelegateForColumn(COLUMN_THREAD_DISTRIBUTION,new DistributionItemDelegate()) ; connect(ui->threadTreeWidget, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(threadListCustomPopupMenu(QPoint))); connect(ui->postText, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(contextMenuTextBrowser(QPoint))); @@ -1018,9 +1061,18 @@ QTreeWidgetItem *GxsForumThreadWidget::convertMsgToThreadWidget(const RsGxsForum // Early check for a message that should be hidden because its author // is flagged with a bad reputation - uint32_t reputation_level = rsIdentity->overallReputationLevel(msg.mMeta.mAuthorId) ; + RsIdentityDetails iddetails ; - bool redacted = (reputation_level == RsReputations::REPUTATION_LOCALLY_NEGATIVE) ; + RsReputations::ReputationLevel reputation_level = RsReputations::REPUTATION_NEUTRAL ; + bool redacted = false ; + + if(!rsIdentity->getIdDetails(msg.mMeta.mAuthorId,iddetails)) + std::cerr << "(WW) Cannot grab identity details for " << msg.mMeta.mAuthorId.toStdString() << std::endl; + else + { + reputation_level = iddetails.mReputation.mOverallReputationLevel ; + redacted = (reputation_level == RsReputations::REPUTATION_LOCALLY_NEGATIVE) ; + } GxsIdRSTreeWidgetItem *item = new GxsIdRSTreeWidgetItem(mThreadCompareRole,GxsIdDetails::ICON_TYPE_AVATAR ); item->moveToThread(ui->threadTreeWidget->thread()); @@ -1030,18 +1082,27 @@ QTreeWidgetItem *GxsForumThreadWidget::convertMsgToThreadWidget(const RsGxsForum else item->setText(COLUMN_THREAD_TITLE, QString::fromUtf8(msg.mMeta.mMsgName.c_str())); - item->setData(COLUMN_THREAD_DISTRIBUTION,Qt::DecorationRole, reputation_level) ; - QString rep_tooltip_str ; - switch(reputation_level) + uint32_t rep_warning_level ; + + if(reputation_level == RsReputations::REPUTATION_LOCALLY_NEGATIVE) { - case RsReputations::REPUTATION_LOCALLY_NEGATIVE: rep_tooltip_str = tr("You have banned this ID. The message will not be\ndisplayed nor forwarded to your friends.") ; break; - case RsReputations::REPUTATION_REMOTELY_NEGATIVE: rep_tooltip_str = tr("You have not set an opinion for this person,\n and your friends vote negatively: Spam regulation \nprevents the message to be forwarded to your friends.") ; break; - case RsReputations::REPUTATION_NEUTRAL: rep_tooltip_str = tr("You have not set an opinion for this person,\n and neither have your friends: Spam regulation\nprevents the message to be forwarded to your friends.") ; break; - default: - rep_tooltip_str = tr("Message will be forwarded to your friends.") ; break; + rep_warning_level = 2 ; + rep_tooltip_str = tr("You have banned this ID. The message will not be\ndisplayed nor forwarded to your friends.") ; } + else if(reputation_level < rsGxsForums->minReputationForForwardingMessages(mForumGroup.mMeta.mSignFlags,iddetails.mFlags)) + { + rep_warning_level = 1 ; + rep_tooltip_str = tr("You have not set an opinion for this person,\n and your friends do not vote positively: Spam regulation \nprevents the message to be forwarded to your friends.") ; + } + else + { + rep_warning_level = 0 ; + rep_tooltip_str = tr("Message will be forwarded to your friends.") ; + } + item->setData(COLUMN_THREAD_DISTRIBUTION,Qt::ToolTipRole,rep_tooltip_str) ; + item->setData(COLUMN_THREAD_DISTRIBUTION,Qt::DecorationRole,rep_warning_level) ; //msg.mMeta.mChildTs Was not updated when received new child // so do it here. diff --git a/retroshare-gui/src/gui/icons.qrc b/retroshare-gui/src/gui/icons.qrc index 1a63b784d..8b57ae68a 100644 --- a/retroshare-gui/src/gui/icons.qrc +++ b/retroshare-gui/src/gui/icons.qrc @@ -216,6 +216,8 @@ icons/user-offline_64.png icons/user-online_64.png icons/void_128.png + icons/warning_red_128.png + icons/warning_yellow_128.png icons/yahoo.png icons/yandex.png icons/yellow_biohazard64.png diff --git a/retroshare-gui/src/gui/icons/warning_red_128.png b/retroshare-gui/src/gui/icons/warning_red_128.png new file mode 100644 index 0000000000000000000000000000000000000000..3399fee0c54c14f18dc826fdf42198a5345ab13a GIT binary patch literal 27339 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 F{{fkZ(R2U+ literal 0 HcmV?d00001 diff --git a/retroshare-gui/src/gui/icons/warning_yellow_128.png b/retroshare-gui/src/gui/icons/warning_yellow_128.png new file mode 100644 index 0000000000000000000000000000000000000000..0d809ce654653bb1f3d508a1ed63f15204dbb654 GIT binary patch literal 25848 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 literal 0 HcmV?d00001