From 1a15eb60f0f91dc399112bac8ba1e56abf7f5cd6 Mon Sep 17 00:00:00 2001 From: cgeek <cem.moreau@gmail.com> Date: Fri, 17 Mar 2017 14:22:02 +0100 Subject: [PATCH] [fix] #900 Do not ask to kick a member who is being excluded --- app/lib/dal/fileDAL.js | 2 +- app/lib/dup/indexer.js | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/lib/dal/fileDAL.js b/app/lib/dal/fileDAL.js index d0993aae0..338d48687 100644 --- a/app/lib/dal/fileDAL.js +++ b/app/lib/dal/fileDAL.js @@ -529,7 +529,7 @@ function FileDAL(params) { cindex = cindex.concat(yield indexer.ruleIndexGenCertificationExpiry(HEAD, that)); mindex = mindex.concat(yield indexer.ruleIndexGenMembershipExpiry(HEAD, that)); iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByMembership(HEAD, mindex, that)); - iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByCertificatons(HEAD, cindex, conf, that)); + iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByCertificatons(HEAD, cindex, iindex, conf, that)); mindex = mindex.concat(yield indexer.ruleIndexGenImplicitRevocation(HEAD, that)); yield indexer.ruleIndexCorrectMembershipExpiryDate(HEAD, mindex, that); yield indexer.ruleIndexCorrectCertificationExpiryDate(HEAD, cindex, that); diff --git a/app/lib/dup/indexer.js b/app/lib/dup/indexer.js index eb824f157..dea0c86c7 100644 --- a/app/lib/dup/indexer.js +++ b/app/lib/dup/indexer.js @@ -1435,7 +1435,7 @@ const indexer = module.exports = { }), // BR_G95 - ruleIndexGenExclusionByCertificatons: (HEAD, cindex, conf, dal) => co(function*() { + ruleIndexGenExclusionByCertificatons: (HEAD, cindex, iindex, conf, dal) => co(function*() { const exclusions = []; const expiredCerts = _.filter(cindex, (c) => c.expired_on > 0); for (const CERT of expiredCerts) { @@ -1443,8 +1443,9 @@ const indexer = module.exports = { const just_received = _.filter(cindex, (c) => c.receiver == CERT.receiver && c.expired_on == 0); const non_expired_global = yield dal.cindexDAL.getValidLinksTo(CERT.receiver); if ((count(non_expired_global) - count(just_expired) + count(just_received)) < conf.sigQty) { + const isInExcluded = _.filter(iindex, (i) => i.member === false && i.pub === CERT.receiver)[0]; const idty = yield dal.iindexDAL.getFromPubkey(CERT.receiver); - if (idty.member) { + if (!isInExcluded && idty.member) { exclusions.push({ op: 'UPDATE', pub: CERT.receiver, -- GitLab