Files
NodeBB/src/controllers/admin.js
Julian Lam a82e9bd7f6 feat: privileges for Admin Control Panel (#8355)
* feat: acp privileges (WIP)

* fix: restore global privilege hooks

* refactor: using cid 0 in admin privs

* fix: no need for zebrastripe-reset

* feat: manage:categories privilege WIP

* feat: renamed prefix to admin:, settigns and dashboard privs

* fix: nofocus on acp privs group find modal

* refactor: privileges.x.get() to not used hardcoded privs

* fix: crash if unable to get latest version

* feat: setting acp priv

* Revert "fix: crash if unable to get latest version"

This reverts commit afdb235f48.

* feat: user/privilege acp privs

* fix: category selector in manage/privileges

* fix: guests potentially becoming admins

* fix: bug in setting admin privs

* fix: some last minute things + api docs

* fix: some more last minute fixes
2020-06-05 15:26:51 -04:00

53 lines
1.7 KiB
JavaScript

'use strict';
const privileges = require('../privileges');
const helpers = require('./helpers');
var adminController = {
dashboard: require('./admin/dashboard'),
categories: require('./admin/categories'),
privileges: require('./admin/privileges'),
adminsMods: require('./admin/admins-mods'),
tags: require('./admin/tags'),
groups: require('./admin/groups'),
digest: require('./admin/digest'),
appearance: require('./admin/appearance'),
extend: {
widgets: require('./admin/widgets'),
rewards: require('./admin/rewards'),
},
events: require('./admin/events'),
hooks: require('./admin/hooks'),
logs: require('./admin/logs'),
errors: require('./admin/errors'),
database: require('./admin/database'),
cache: require('./admin/cache'),
plugins: require('./admin/plugins'),
settings: require('./admin/settings'),
logger: require('./admin/logger'),
themes: require('./admin/themes'),
users: require('./admin/users'),
uploads: require('./admin/uploads'),
info: require('./admin/info'),
};
adminController.routeIndex = async (req, res) => {
const privilegeSet = await privileges.admin.get(req.uid);
if (privilegeSet.superadmin || privilegeSet['admin:dashboard']) {
return adminController.dashboard.get(req, res);
} else if (privilegeSet['admin:categories']) {
return helpers.redirect(res, 'admin/manage/categories');
} else if (privilegeSet['admin:privileges']) {
return helpers.redirect(res, 'admin/manage/privileges');
} else if (privilegeSet['admin:users']) {
return helpers.redirect(res, 'admin/manage/users');
} else if (privilegeSet['admin:settings']) {
return helpers.redirect(res, 'admin/settings/general');
}
return helpers.notAllowed(req, res);
};
module.exports = adminController;