dont increase ratelimit unless no errors

merge-requests/208/head
fatchan 5 years ago
parent 4482889bca
commit 6e4b2a9906
  1. 12
      controllers/forms/boardsettings.js
  2. 18
      models/forms/changeboardsettings.js

@ -2,6 +2,7 @@
const changeBoardSettings = require(__dirname+'/../../models/forms/changeboardsettings.js')
, themes = require(__dirname+'/../../helpers/themes.js')
, { Ratelimits } = require(__dirname+'/../../db/')
, { globalLimits } = require(__dirname+'/../../configs/main.json');
module.exports = async (req, res, next) => {
@ -71,6 +72,17 @@ module.exports = async (req, res, next) => {
});
}
if (res.locals.permLevel > 1) { //if not global staff or above
const ratelimit = await Ratelimits.incrmentQuota(res.locals.ip.hash, 'settings', 50); //2 changes a minute
if (ratelimit > 100) {
return res.status(429).render('message', {
'title': 'Ratelimited',
'error': 'You are changing settings too quickly, please wait a minute and try again',
'redirect': `/${req.params.board}/manage/settings.html`
});
}
}
try {
await changeBoardSettings(req, res, next);
} catch (err) {

@ -1,6 +1,6 @@
'use strict';
const { Ratelimits, Boards, Posts, Accounts } = require(__dirname+'/../../db/')
const { Boards, Posts, Accounts } = require(__dirname+'/../../db/')
, uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.js')
, buildQueue = require(__dirname+'/../../queue.js')
, { remove } = require('fs-extra')
@ -71,7 +71,7 @@ module.exports = async (req, res, next) => {
'theme': req.body.theme ? req.body.theme : oldSettings.theme,
'announcement': {
'raw': req.body.announcement !== null ? req.body.announcement : oldSettings.announcement.raw,
'markdown': markdownAnnouncement
'markdown': req.body.announcement !== null ? markdownAnnouncement : oldSettings.announcement.markdown
},
'allowedFileTypes': {
'animatedImage': req.body.files_allow_animated_image ? true : false,
@ -127,16 +127,10 @@ module.exports = async (req, res, next) => {
}
if (newSettings.theme !== oldSettings.theme) {
let ratelimit;
if (res.locals.permLevel > 1) { //if not global staff or above
ratelimit = await Ratelimits.incrmentQuota(res.locals.ip.hash, 'settings', 100);
}
if (!ratelimit || ratelimit < 100) {
rebuildThreads = true;
rebuildBoard = true;
rebuildCatalog = true;
rebuildOther = true;
}
rebuildThreads = true;
rebuildBoard = true;
rebuildCatalog = true;
rebuildOther = true;
}
if (rebuildThreads) {

Loading…
Cancel
Save