jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

34 lines
903 B

'use strict';
const Bans = require(__dirname+'/../../db/bans.js')
module.exports = async (req, res, next) => {
const banDate = new Date();
const banExpiry = new Date(req.body.ban_duration ? banDate.getTime() + req.body.ban_duration : 8640000000000000);
const banReason = req.body.ban_reason || 'No reason specified';
const banBoard = req.body.global_ban ? null : req.params.board;
const bans = res.locals.posts.map(post => {
return {
'ip': post.ip,
'reason': banReason,
'board': banBoard,
'post': req.body.preserve_post ? post : null,
'issuer': req.session.user.username,
'date': banDate,
'expireAt': banExpiry
}
});
const numBans = await Bans.insertMany(bans).then(result => result.insertedCount);
return {
message: `Added ${numBans} bans`,
action:'$set',
query: {
'banmessage': req.body.ban_reason || null
}
};
}