Start on ban notes

indiachan-spamvector
Thomas Lynch 2 years ago
parent 6d2249c13a
commit 3b08cc684b
  1. 1
      lib/middleware/permission/bancheck.js
  2. 5
      lib/post/filteractions.js
  3. 1
      models/forms/banposter.js
  4. 4
      models/forms/editpost.js
  5. 6
      models/forms/makepost.js

@ -23,6 +23,7 @@ module.exports = async (req, res, next) => {
const unseenBans = bans.filter(b => !b.seen).map(b => b._id); const unseenBans = bans.filter(b => !b.seen).map(b => b._id);
await Bans.markSeen(unseenBans); //mark bans as seen await Bans.markSeen(unseenBans); //mark bans as seen
bans.forEach(ban => { bans.forEach(ban => {
ban.note = null;
ban.ip.raw = null; ban.ip.raw = null;
ban.issuer = ban.showUser === true ? ban.issuer : null; ban.issuer = ban.showUser === true ? ban.issuer : null;
ban.seen = true; ban.seen = true;

@ -4,7 +4,7 @@ const { Bans } = require(__dirname+'/../../db/')
, dynamicResponse = require(__dirname+'/../misc/dynamic.js'); , dynamicResponse = require(__dirname+'/../misc/dynamic.js');
//ehhh, kinda too many args //ehhh, kinda too many args
module.exports = async (req, res, hitGlobalFilter, boardFilterMode, globalFilterMode, module.exports = async (req, res, hitGlobalFilter, hitLocalFilter, boardFilterMode, globalFilterMode,
boardFilterBanDuration, globalFilterBanDuration, filterBanAppealable, redirect) => { boardFilterBanDuration, globalFilterBanDuration, filterBanAppealable, redirect) => {
//global filter mode takes prio //global filter mode takes prio
@ -36,7 +36,8 @@ module.exports = async (req, res, hitGlobalFilter, boardFilterMode, globalFilter
'expireAt': banExpiry, 'expireAt': banExpiry,
'allowAppeal': hitGlobalFilter ? filterBanAppealable : true, 'allowAppeal': hitGlobalFilter ? filterBanAppealable : true,
'showUser': true, 'showUser': true,
'seen': false 'note': `${hitGlobalFilter ? 'global ' :''}filter hit: "${hitGlobalFilter || hitLocalFilter}"`,
'seen': false,
}; };
const insertedResult = await Bans.insertOne(ban); const insertedResult = await Bans.insertOne(ban);
//add and delete some props for the dynamic response //add and delete some props for the dynamic response

@ -59,6 +59,7 @@ module.exports = async (req, res) => {
allowAppeal, allowAppeal,
'appeal': null, 'appeal': null,
'showUser': !req.body.hide_name, 'showUser': !req.body.hide_name,
'note': null,
'seen': false, 'seen': false,
}); });
} }

@ -34,10 +34,10 @@ todo: handle some more situations
if (filters.length > 0 && filterMode > 0) { if (filters.length > 0 && filterMode > 0) {
let hitGlobalFilter = false; let hitGlobalFilter = false;
const { strictCombinedString } = getFilterStrings(req, res, strictFiltering); const { strictCombinedString } = getFilterStrings(req, res, strictFiltering);
hitGlobalFilter = filters.some(filter => { return strictCombinedString.includes(filter.toLowerCase()); }); hitGlobalFilter = filters.find(filter => { return strictCombinedString.includes(filter.toLowerCase()); });
//block/ban edit //block/ban edit
if (hitGlobalFilter) { if (hitGlobalFilter) {
return filterActions(req, res, hitGlobalFilter, 0, filterMode, return filterActions(req, res, hitGlobalFilter, null, 0, filterMode,
0, filterBanDuration, filterBanAppealable, null); 0, filterBanDuration, filterBanAppealable, null);
} }
} }

@ -120,20 +120,20 @@ module.exports = async (req, res) => {
//compare to global filters //compare to global filters
if (globalFilters && globalFilters.length > 0 && globalFilterMode > 0) { if (globalFilters && globalFilters.length > 0 && globalFilterMode > 0) {
hitGlobalFilter = globalFilters.some(filter => { return strictCombinedString.includes(filter.toLowerCase()); }); hitGlobalFilter = globalFilters.find(filter => { return strictCombinedString.includes(filter.toLowerCase()); });
} }
//compare to board filters //compare to board filters
if (!hitGlobalFilter && !res.locals.permissions.get(Permissions.MANAGE_BOARD_GENERAL) if (!hitGlobalFilter && !res.locals.permissions.get(Permissions.MANAGE_BOARD_GENERAL)
&& filterMode > 0 && filters && filters.length > 0) { && filterMode > 0 && filters && filters.length > 0) {
const localFilterContents = res.locals.board.settings.strictFiltering === true ? strictCombinedString : combinedString; const localFilterContents = res.locals.board.settings.strictFiltering === true ? strictCombinedString : combinedString;
hitLocalFilter = filters.some(filter => { return localFilterContents.includes(filter.toLowerCase()); }); hitLocalFilter = filters.find(filter => { return localFilterContents.includes(filter.toLowerCase()); });
} }
//block post/apply bans if an active filter matched //block post/apply bans if an active filter matched
if (hitGlobalFilter || hitLocalFilter) { if (hitGlobalFilter || hitLocalFilter) {
await deleteTempFiles(req).catch(console.error); await deleteTempFiles(req).catch(console.error);
return filterActions(req, res, hitGlobalFilter, filterMode, globalFilterMode, return filterActions(req, res, hitGlobalFilter, hitLocalFilter, filterMode, globalFilterMode,
filterBanDuration, globalFilterBanDuration, filterBanAppealable, redirect); filterBanDuration, globalFilterBanDuration, filterBanAppealable, redirect);
} }

Loading…
Cancel
Save