dont destructure roles, access it normally so load() callback will update them properly

and rename agian, why do i suck at naming stuff lol
merge-requests/341/head
Thomas Lynch 2 years ago
parent 28b441a26a
commit 00da66f95e
  1. 6
      controllers/forms/editaccount.js
  2. 4
      helpers/checks/calcperms.js
  3. 4
      helpers/posting/message.js
  4. 0
      helpers/rolemanager.js
  5. 12
      migrations/0.4.0.js
  6. 4
      models/forms/addstaff.js
  7. 4
      models/forms/create.js
  8. 4
      models/forms/register.js
  9. 6
      models/forms/transferboard.js
  10. 4
      models/pages/globalmanage/accounts.js
  11. 4
      models/pages/globalmanage/editaccount.js
  12. 4
      models/pages/globalmanage/editrole.js
  13. 4
      models/pages/globalmanage/roles.js
  14. 4
      server.js

@ -6,7 +6,7 @@ const editAccount = require(__dirname+'/../../models/forms/editaccount.js')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, paramConverter = require(__dirname+'/../../helpers/paramconverter.js')
, Permissions = require(__dirname+'/../../helpers/permissions.js')
, { roles } = require(__dirname+'/../../helpers/roles.js')
, roleManager = require(__dirname+'/../../helpers/rolemanager.js')
, { checkSchema, lengthBody, numberBody, minmaxBody, numberBodyVariable,
inArrayBody, arrayInBody, existsBody } = require(__dirname+'/../../helpers/schema.js');
@ -28,8 +28,8 @@ module.exports = {
}, expected: true, error: 'Invalid account username' },
{ result: (res.locals.user.username === req.body.username), expected: false, error: "You can't edit your own permissions" },
{ result: !existsBody(req.body.template) //no template, OR the template is a valid one
|| inArrayBody(req.body.template, [roles.ANON.base64, roles.GLOBAL_STAFF.base64, roles.ADMIN.base64,
roles.BOARD_STAFF.base64, roles.BOARD_OWNER.base64]),
|| inArrayBody(req.body.template, [roleManager.roles.ANON.base64, roleManager.roles.GLOBAL_STAFF.base64,
roleManager.roles.ADMIN.base64, roleManager.roles.BOARD_STAFF.base64, roleManager.roles.BOARD_OWNER.base64]),
expected: true, error: "Invalid template selection" },
]);

@ -2,7 +2,7 @@
const Permissions = require(__dirname+'/../permissions.js') //needs rename
, Permission = require(__dirname+'/../permission.js')
, { roles } = require(__dirname+'/../roles.js');
, roleManager = require(__dirname+'/../rolemanager.js');
module.exports = (req, res) => {
@ -40,7 +40,7 @@ module.exports = (req, res) => {
} else {
//not logged in, gets default anon permission
calculatedPermissions = new Permission(roles.ANON.base64);
calculatedPermissions = new Permission(roleManager.roles.ANON.base64);
}
return calculatedPermissions;

@ -5,7 +5,7 @@ const quoteHandler = require(__dirname+'/quotes.js')
, { markdown } = require(__dirname+'/markdown.js')
, sanitizeOptions = require(__dirname+'/sanitizeoptions.js')
, Permission = require(__dirname+'/../permissions.js')
, { roles } = require(__dirname+'/../roles.js')
, roleManager = require(__dirname+'/../rolemanager.js')
, sanitize = require('sanitize-html');
module.exports = async (inputMessage, boardName, threadId=null, permissions=null) => {
@ -16,7 +16,7 @@ module.exports = async (inputMessage, boardName, threadId=null, permissions=null
if (permissions === null) {
//technically there has for a long time been a bug here, but it can be fixed later. permissions unknown for old msgs
permissions = new Permission(roles.ANON.base64);
permissions = new Permission(roleManager.roles.ANON.base64);
}
//markdown a post, link the quotes, sanitize and return message and quote arrays

@ -1,6 +1,6 @@
'use strict';
const { roles } = require(__dirname+'/../helpers/roles.js')
const roleManager = require(__dirname+'/../helpers/rolemanager.js')
, Permission = require(__dirname+'/../helpers/permission.js')
, { Binary } = require('mongodb');
@ -9,19 +9,19 @@ module.exports = async(db, redis) => {
console.log('setting new permission templates to replace old permission "levels"');
await db.collection('accounts').updateMany({ authLevel: 0 }, {
'$set': {
'permissions': Binary(roles.ROOT.array),
'permissions': Binary(roleManager.roles.ROOT.array),
},
});
await db.collection('accounts').updateMany({ authLevel: 1 }, {
'$set': {
'permissions': Binary(roles.GLOBAL_STAFF.array),
'permissions': Binary(roleManager.roles.GLOBAL_STAFF.array),
},
});
//not doing 2 and 3 anymore, since they were a weird, ugly part of the old "levels" system.
//they can be added back manually by editing global perms if desired
await db.collection('accounts').updateMany({ authLevel: { $gte: 2 } }, { //gte2, to get 2, 3, and 4.
'$set': {
'permissions': Binary(roles.ANON.array),
'permissions': Binary(roleManager.roles.ANON.array),
},
});
console.log('renaming account modBoards->staffBoards');
@ -51,14 +51,14 @@ module.exports = async(db, redis) => {
const bulkWrites = allBoards.map(board => {
const staffObject = board.settings.moderators.reduce((acc, mod) => {
acc[mod] = {
permissions: Binary(roles.BOARD_STAFF.array),
permissions: Binary(roleManager.roles.BOARD_STAFF.array),
addedDate: new Date(),
};
return acc;
}, {});
//add add the BO to staff
staffObject[board.owner] = {
permissions: Binary(roles.BOARD_OWNER.array),
permissions: Binary(roleManager.roles.BOARD_OWNER.array),
addedDate: new Date(),
}
return {

@ -2,13 +2,13 @@
const { Boards, Accounts } = require(__dirname+'/../../db/')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, { roles } = require(__dirname+'/../../helpers/roles.js');
, roleManager = require(__dirname+'/../../helpers/rolemanager.js');
module.exports = async (req, res, next) => {
await Promise.all([
Accounts.addStaffBoard([req.body.username], res.locals.board._id),
Boards.addStaff(res.locals.board._id, req.body.username, roles.BOARD_STAFF)
Boards.addStaff(res.locals.board._id, req.body.username, roleManager.roles.BOARD_STAFF)
]);
return dynamicResponse(req, res, 200, 'message', {

@ -3,7 +3,7 @@
const { Boards, Accounts } = require(__dirname+'/../../db/')
, { Binary } = require(__dirname+'/../../db/db.js')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, { roles } = require(__dirname+'/../../helpers/roles.js')
, roleManager = require(__dirname+'/../../helpers/rolemanager.js')
, uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.js')
, restrictedURIs = new Set(['captcha', 'forms', 'randombanner', 'all'])
, { ensureDir } = require('fs-extra')
@ -52,7 +52,7 @@ module.exports = async (req, res, next) => {
'webring': false,
'staff': {
[owner]: {
'permissions': Binary(roles.BOARD_OWNER.array),
'permissions': Binary(roleManager.roles.BOARD_OWNER.array),
'addedDate': new Date(),
},
},

@ -2,7 +2,7 @@
const { Accounts } = require(__dirname+'/../../db/')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, { roles } = require(__dirname+'/../../helpers/roles.js');
, roleManager = require(__dirname+'/../../helpers/rolemanager.js');
module.exports = async (req, res, next) => {
@ -22,7 +22,7 @@ module.exports = async (req, res, next) => {
}
// add account to db. password is hashed in db model func for easier tests
await Accounts.insertOne(original, username, password, roles.ANON);
await Accounts.insertOne(original, username, password, roleManager.roles.ANON);
return res.redirect('/login.html');

@ -2,7 +2,7 @@
const { Boards, Accounts } = require(__dirname+'/../../db/')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, { roles } = require(__dirname+'/../../helpers/roles.js');
, roleManager = require(__dirname+'/../../helpers/rolemanager.js');
module.exports = async (req, res, next) => {
@ -20,14 +20,14 @@ module.exports = async (req, res, next) => {
if (res.locals.board.staff[newOwner._id] != null) {
//if already a staff, just change their permission instead of removing+adding back
await Promise.all([
Boards.setStaffPermissions(req.params.board, newOwner._id, roles.BOARD_OWNER, true),
Boards.setStaffPermissions(req.params.board, newOwner._id, roleManager.roles.BOARD_OWNER, true),
Accounts.removeStaffBoard([newOwner._id], req.params.board),
Accounts.addOwnedBoard(newOwner._id, req.params.board),
]);
} else {
//otherwise add them as a new staff+owner
await Promise.all([
Boards.addStaff(req.params.board, newOwner._id, roles.BOARD_OWNER, true),
Boards.addStaff(req.params.board, newOwner._id, roleManager.roles.BOARD_OWNER, true),
Accounts.addOwnedBoard(newOwner._id, req.params.board),
]);
}

@ -1,7 +1,7 @@
'use strict';
const { Accounts } = require(__dirname+'/../../../db/')
, roles = require(__dirname+'/../../../helpers/roles.js')
, roleManager = require(__dirname+'/../../../helpers/rolemanager.js')
, pageQueryConverter = require(__dirname+'/../../../helpers/pagequeryconverter.js')
, limit = 20;
@ -49,7 +49,7 @@ module.exports = async (req, res, next) => {
accounts,
page,
maxPage,
roleNameMap: roles.roleNameMap,
roleNameMap: roleManager.roleNameMap,
});
}

@ -1,7 +1,7 @@
'use strict';
const { Accounts } = require(__dirname+'/../../../db/')
, { roles } = require(__dirname+'/../../../helpers/roles.js')
, roleManager = require(__dirname+'/../../../helpers/rolemanager.js')
, Permission = require(__dirname+'/../../../helpers/permission.js');
module.exports = async (req, res, next) => {
@ -23,7 +23,7 @@ module.exports = async (req, res, next) => {
board: res.locals.board,
accountUsername: req.params.accountusername,
accountPermissions,
roles,
roles: roleManager.roles,
});
}

@ -1,7 +1,7 @@
'use strict';
const { Roles } = require(__dirname+'/../../../db/')
, roles = require(__dirname+'/../../../helpers/roles.js')
, roleManager = require(__dirname+'/../../../helpers/rolemanager.js')
, Permission = require(__dirname+'/../../../helpers/permission.js');
module.exports = async (req, res, next) => {
@ -19,7 +19,7 @@ module.exports = async (req, res, next) => {
csrf: req.csrfToken(),
role,
rolePermissions: new Permission(role.permissions),
roleNameMap: roles.roleNameMap,
roleNameMap: roleManager.roleNameMap,
});
}

@ -1,7 +1,7 @@
'use strict';
const { Roles } = require(__dirname+'/../../../db/')
, roles = require(__dirname+'/../../../helpers/roles.js');
, roleManager = require(__dirname+'/../../../helpers/rolemanager.js');
module.exports = async (req, res, next) => {
@ -13,7 +13,7 @@ module.exports = async (req, res, next) => {
csrf: req.csrfToken(),
permissions: res.locals.permissions,
allRoles,
roleNameMap: roles.roleNameMap,
roleNameMap: roleManager.roleNameMap,
});
}

@ -36,8 +36,8 @@ const config = require(__dirname+'/config.js')
const redis = require(__dirname+'/redis.js');
// load roles early
const roles = require(__dirname+'/helpers/roles.js');
await roles.load();
const roleManager = require(__dirname+'/helpers/rolemanager.js');
await roleManager.load();
// disable useless express header
app.disable('x-powered-by');

Loading…
Cancel
Save