Compare commits

...

5 Commits

  1. 4
      controllers/forms.js
  2. 28
      controllers/forms/editbans.js
  3. 2
      views/mixins/ban.pug

@ -57,7 +57,7 @@ router.post('/board/:board/transfer', useSession, sessionRefresh, csrf, Boards.e
hasPerms.any(Permissions.MANAGE_BOARD_OWNER, Permissions.MANAGE_GLOBAL_BOARDS), transferController.paramConverter, transferController.controller);
router.post('/board/:board/settings', geoIp, processIp, useSession, sessionRefresh, csrf, Boards.exists, setBoardLanguage, calcPerms, isLoggedIn,
hasPerms.one(Permissions.MANAGE_BOARD_SETTINGS), boardSettingsController.paramConverter, boardSettingsController.controller);
router.post('/board/:board/editbans', useSession, sessionRefresh, csrf, Boards.exists, setBoardLanguage, calcPerms, isLoggedIn,
router.post('/board/:board/editbans', geoIp, processIp, useSession, sessionRefresh, csrf, Boards.exists, setBoardLanguage, calcPerms, isLoggedIn,
hasPerms.one(Permissions.MANAGE_BOARD_BANS), editBansController.paramConverter, editBansController.controller); //edit bans
router.post('/board/:board/addfilter', useSession, sessionRefresh, csrf, Boards.exists, setBoardLanguage, calcPerms, isLoggedIn,
hasPerms.one(Permissions.MANAGE_BOARD_SETTINGS), addFilterController.paramConverter, addFilterController.controller); //add new filter
@ -95,7 +95,7 @@ router.post('/board/:board/deletestaff', useSession, sessionRefresh, csrf, Board
hasPerms.one(Permissions.MANAGE_BOARD_STAFF), deleteStaffController.paramConverter, deleteStaffController.controller); //delete board staff
//global management forms
router.post('/global/editbans', useSession, sessionRefresh, csrf, calcPerms, isLoggedIn,
router.post('/global/editbans', geoIp, processIp, useSession, sessionRefresh, csrf, calcPerms, isLoggedIn,
hasPerms.one(Permissions.MANAGE_GLOBAL_BANS), editBansController.paramConverter, editBansController.controller); //remove bans
router.post('/global/deleteboard', useSession, sessionRefresh, csrf, deleteBoardController.paramConverter, calcPerms, isLoggedIn,
hasPerms.one(Permissions.MANAGE_GLOBAL_BOARDS), deleteBoardController.controller); //delete board from global management panel

@ -8,6 +8,8 @@ const config = require(__dirname+'/../../lib/misc/config.js')
, editBanNote = require(__dirname+'/../../models/forms/editbannote.js')
, upgradeBans = require(__dirname+'/../../models/forms/upgradebans.js')
, paramConverter = require(__dirname+'/../../lib/middleware/input/paramconverter.js')
, ModlogActions = require(__dirname+'/../../lib/input/modlogactions.js')
, { Bans, Modlogs } = require(__dirname+'/../../db/')
, { checkSchema, lengthBody, numberBody, inArrayBody } = require(__dirname+'/../../lib/input/schema.js');
module.exports = {
@ -44,6 +46,13 @@ module.exports = {
});
}
let bans = [];
try {
bans = await Bans.get(req.body.checkedbans, req.params.board ? req.params.board : null);
} catch (e) {
return next(e);
}
let amount = 0;
let message;
try {
@ -71,6 +80,25 @@ module.exports = {
default:
throw __('Invalid ban action'); //should never happen anyway
}
// inserting these into non-public modlogs
const modlogs = bans.map(b => ({
board: Array.isArray(b.board) ? b.board.find(bx => bx != null) : b.board, //TODO: if in future multiple are allowed, update this to use an array
showLinks: true,
postLinks: [],
actions: [ModlogActions.BAN],
public: false,
date: new Date(),
showUser: true,
message: message,
user: req.session.user,
ip: {
cloak: res.locals.ip.cloak,
raw: res.locals.ip.raw,
}
}));
await Modlogs.insertMany(modlogs);
} catch (err) {
return next(err);
}

@ -7,7 +7,7 @@ mixin ban(ban, banpage)
input.post-check(type='checkbox', name='checkedbans' value=ban._id)
td
if ban.global === true
| #{__('Global')}
| #{__('Global')} (#{ban.board.filter(n => n).join(', ')})
else
a(href=`/${ban.board}/`) /#{ban.board}/
td= ban.reason

Loading…
Cancel
Save