diff --git a/app/lib/dal/fileDAL.js b/app/lib/dal/fileDAL.js index 69d3f83e6ab1ed3c7db9456da6edb7f419cd1c06..d0993aae0a6cdbf280cdfa3a168ce0e7b2feee1a 100644 --- a/app/lib/dal/fileDAL.js +++ b/app/lib/dal/fileDAL.js @@ -528,7 +528,7 @@ function FileDAL(params) { sindex = sindex.concat(yield indexer.ruleIndexGarbageSmallAccounts(HEAD, sindex, that)); cindex = cindex.concat(yield indexer.ruleIndexGenCertificationExpiry(HEAD, that)); mindex = mindex.concat(yield indexer.ruleIndexGenMembershipExpiry(HEAD, that)); - iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByMembership(HEAD, mindex)); + iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByMembership(HEAD, mindex, that)); iindex = iindex.concat(yield indexer.ruleIndexGenExclusionByCertificatons(HEAD, cindex, conf, that)); mindex = mindex.concat(yield indexer.ruleIndexGenImplicitRevocation(HEAD, that)); yield indexer.ruleIndexCorrectMembershipExpiryDate(HEAD, mindex, that); diff --git a/app/lib/dup/indexer.js b/app/lib/dup/indexer.js index 09f34517530b44d5022a04df2c2155012f9f3a80..0646912bcaede618fb2b9c5704c7477fbf5bdf76 100644 --- a/app/lib/dup/indexer.js +++ b/app/lib/dup/indexer.js @@ -1374,16 +1374,19 @@ const indexer = module.exports = { }), // BR_G94 - ruleIndexGenExclusionByMembership: (HEAD, mindex) => co(function*() { + ruleIndexGenExclusionByMembership: (HEAD, mindex, dal) => co(function*() { const exclusions = []; const memberships = _.filter(mindex, (entry) => entry.expired_on); for (const MS of memberships) { - exclusions.push({ - op: 'UPDATE', - pub: MS.pub, - written_on: [HEAD.number, HEAD.hash].join('-'), - kick: true - }); + const idty = yield dal.iindexDAL.getFromPubkey(MS.pub); + if (idty.member) { + exclusions.push({ + op: 'UPDATE', + pub: MS.pub, + written_on: [HEAD.number, HEAD.hash].join('-'), + kick: true + }); + } } return exclusions; }), @@ -1397,12 +1400,15 @@ 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) { - exclusions.push({ - op: 'UPDATE', - pub: CERT.receiver, - written_on: [HEAD.number, HEAD.hash].join('-'), - kick: true - }); + const idty = yield dal.iindexDAL.getFromPubkey(CERT.receiver); + if (idty.member) { + exclusions.push({ + op: 'UPDATE', + pub: CERT.receiver, + written_on: [HEAD.number, HEAD.hash].join('-'), + kick: true + }); + } } } return exclusions;