merge-requests/208/head
fatchan 4 years ago
parent dfc453ef81
commit b4d9411ab4
  1. 1
      controllers/forms.js
  2. 5
      controllers/forms/deleteboard.js
  3. 6
      db/boards.js
  4. 15
      views/pages/globalmanagesettings.pug
  5. 6
      views/pages/managesettings.pug

@ -105,6 +105,7 @@ router.post('/board/:board/deleteboard', processIp, sessionRefresh, csrf, Boards
//global management forms
router.post('/global/editbans', sessionRefresh, csrf, calcPerms, isLoggedIn, hasPerms(1), paramConverter, editBansController); //remove bans
router.post('/global/deleteboard', sessionRefresh, csrf, paramConverter, calcPerms, isLoggedIn, hasPerms(1), deleteBoardController); //delete board
router.post('/global/addnews', sessionRefresh, csrf, calcPerms, isLoggedIn, hasPerms(0), addNewsController); //add new newspost
router.post('/global/deletenews', sessionRefresh, csrf, calcPerms, isLoggedIn, hasPerms(0), paramConverter, deleteNewsController); //delete news
router.post('/global/editaccounts', sessionRefresh, csrf, calcPerms, isLoggedIn, hasPerms(0), paramConverter, editAccountsController); //account editing

@ -22,6 +22,7 @@ module.exports = async (req, res, next) => {
//no need to check these if the board name is completely invalid
if (req.params.board != null && req.params.board !== req.body.uri) {
//board manage page to not be able to delete other boards;
//req.params.board will be null on global delete, so this wont happen
errors.push('URI does not match current board');
}
try {
@ -39,7 +40,7 @@ module.exports = async (req, res, next) => {
return dynamicResponse(req, res, 400, 'message', {
'title': 'Bad request',
'errors': errors,
'redirect': req.params.board ? `/${req.params.board}/manage/settings.html` : '/globalmanage/recent.html'
'redirect': req.params.board ? `/${req.params.board}/manage/settings.html` : '/globalmanage/settings.html'
});
}
@ -52,7 +53,7 @@ module.exports = async (req, res, next) => {
return dynamicResponse(req, res, 200, 'message', {
'title': 'Success',
'message': 'Board deleted',
'redirect': req.params.board ? '/' : '/globalmanage/recent.html'
'redirect': req.params.board ? '/' : '/globalmanage/settings.html'
});
}

@ -2,6 +2,7 @@
const Mongo = require(__dirname+'/db.js')
, cache = require(__dirname+'/../redis.js')
, dynamicResponse = require(__dirname+'/../helpers/dynamic.js')
, db = Mongo.client.db('jschan').collection('boards');
module.exports = {
@ -200,7 +201,10 @@ module.exports = {
bodyExists: async (req, res, next) => {
const board = await module.exports.findOne(req.body.board);
if (!board) {
return res.status(404).render('404');
return dynamicResponse(req, res, 404, '404', {
'title': 'Bad request',
'message': 'Board does not exist',
});
}
res.locals.board = board;
next();

@ -9,8 +9,21 @@ block content
br
+globalmanagenav('settings')
hr(size=1)
h4.no-m-p Delete board:
.form-wrapper.flexleft.mt-10
form.form-post(action=`/forms/global/deleteboard`, enctype='application/x-www-form-urlencoded', method='POST')
input(type='hidden' name='_csrf' value=csrf)
.row
.label Board URI
input(type='text' name='uri' required)
.row
.label I'm sure
label.postform-style.ph-5
input(type='checkbox', name='confirm', value='true' required)
input(type='submit', value='submit')
hr(size=1)
h4.no-m-p Settings:
.form-wrapper.flexleft
.form-wrapper.flexleft.mt-10
form.form-post(action=`/forms/global/settings`, enctype='application/x-www-form-urlencoded', method='POST')
input(type='hidden' name='_csrf' value=csrf)
.row

@ -25,13 +25,13 @@ block content
.form-wrapper.flexleft.mt-10
form.form-post(action=`/forms/board/${board._id}/deleteboard`, enctype='application/x-www-form-urlencoded', method='POST')
input(type='hidden' name='_csrf' value=csrf)
.row
.label Board URI
input(type='text' name='uri' required)
.row
.label I'm sure
label.postform-style.ph-5
input(type='checkbox', name='confirm', value='true' required)
.row
.label Board URI
input(type='text' name='uri' required)
input(type='submit', value='submit')
hr(size=1)
h4.no-m-p Settings:

Loading…
Cancel
Save