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);
await Bans.markSeen(unseenBans); //mark bans as seen
bans.forEach(ban => {
ban.note = null;
ban.ip.raw = null;
ban.issuer = ban.showUser === true ? ban.issuer : null;
ban.seen = true;

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

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

@ -34,10 +34,10 @@ todo: handle some more situations
if (filters.length > 0 && filterMode > 0) {
let hitGlobalFilter = false;
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
if (hitGlobalFilter) {
return filterActions(req, res, hitGlobalFilter, 0, filterMode,
return filterActions(req, res, hitGlobalFilter, null, 0, filterMode,
0, filterBanDuration, filterBanAppealable, null);
}
}

@ -120,20 +120,20 @@ module.exports = async (req, res) => {
//compare to global filters
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
if (!hitGlobalFilter && !res.locals.permissions.get(Permissions.MANAGE_BOARD_GENERAL)
&& filterMode > 0 && filters && filters.length > 0) {
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
if (hitGlobalFilter || hitLocalFilter) {
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);
}

Loading…
Cancel
Save