diff --git a/public/language/en-GB/admin/manage/privileges.json b/public/language/en-GB/admin/manage/privileges.json index 92749720b0..737a734f5a 100644 --- a/public/language/en-GB/admin/manage/privileges.json +++ b/public/language/en-GB/admin/manage/privileges.json @@ -39,6 +39,7 @@ "admin-categories": "Categories", "admin-privileges": "Privileges", "admin-users": "Users", + "admin-admins-mods": "Admins & Mods", "admin-groups": "Groups", "admin-settings": "Settings", diff --git a/src/controllers/admin.js b/src/controllers/admin.js index a9fcd83eb6..3ae851145a 100644 --- a/src/controllers/admin.js +++ b/src/controllers/admin.js @@ -44,6 +44,8 @@ adminController.routeIndex = async (req, res) => { return helpers.redirect(res, 'admin/manage/users'); } else if (privilegeSet['admin:groups']) { return helpers.redirect(res, 'admin/manage/groups'); + } else if (privilegeSet['admin:admins-mods']) { + return helpers.redirect(res, 'admin/manage/admins-mods'); } else if (privilegeSet['admin:settings']) { return helpers.redirect(res, 'admin/settings/general'); } diff --git a/src/middleware/admin.js b/src/middleware/admin.js index 5bdc3a0e9c..1a19d5c281 100644 --- a/src/middleware/admin.js +++ b/src/middleware/admin.js @@ -73,7 +73,7 @@ middleware.renderHeader = async (req, res, data) => { version: version, latestVersion: results.latestVersion, upgradeAvailable: results.latestVersion && semver.gt(results.latestVersion, version), - showManageMenu: results.privileges.superadmin || ['categories', 'privileges', 'users', 'groups', 'settings'].some(priv => results.privileges[`admin:${priv}`]), + showManageMenu: results.privileges.superadmin || ['categories', 'privileges', 'users', 'admins-mods', 'groups', 'settings'].some(priv => results.privileges[`admin:${priv}`]), }; templateValues.template = { name: res.locals.template }; diff --git a/src/privileges/admin.js b/src/privileges/admin.js index dcf8f5ff28..9b4d07a732 100644 --- a/src/privileges/admin.js +++ b/src/privileges/admin.js @@ -16,6 +16,7 @@ module.exports = function (privileges) { { name: '[[admin/manage/privileges:admin-dashboard]]' }, { name: '[[admin/manage/privileges:admin-categories]]' }, { name: '[[admin/manage/privileges:admin-privileges]]' }, + { name: '[[admin/manage/privileges:admin-admins-mods]]' }, { name: '[[admin/manage/privileges:admin-users]]' }, { name: '[[admin/manage/privileges:admin-groups]]' }, { name: '[[admin/manage/privileges:admin-settings]]' }, @@ -25,6 +26,7 @@ module.exports = function (privileges) { 'admin:dashboard', 'admin:categories', 'admin:privileges', + 'admin:admins-mods', 'admin:users', 'admin:groups', 'admin:settings', @@ -37,6 +39,7 @@ module.exports = function (privileges) { dashboard: 'admin:dashboard', 'manage/categories': 'admin:categories', 'manage/privileges': 'admin:privileges', + 'manage/admins-mods': 'admin:admins-mods', 'manage/users': 'admin:users', 'manage/groups': 'admin:groups', 'extend/plugins': 'admin:settings', @@ -65,11 +68,14 @@ module.exports = function (privileges) { 'admin.categories.copySettingsFrom': 'admin:categories', 'admin.categories.getPrivilegeSettings': 'admin:privileges', - 'admin.categories.setPrivilege': 'admin:privileges', + 'admin.categories.setPrivilege': 'admin:privileges;admin:admins-mods', 'admin.categories.copyPrivilegesToChildren': 'admin:privileges', 'admin.categories.copyPrivilegesFrom': 'admin:privileges', 'admin.categories.copyPrivilegesToAllCategories': 'admin:privileges', + 'admin.user.makeAdmins': 'admin:admins-mods', + 'admin.user.removeAdmins': 'admin:admins-mods', + 'admin.user.loadGroups': 'admin:users', 'admin.groups.join': 'admin:users', 'admin.groups.leave': 'admin:users', diff --git a/src/views/admin/partials/menu.tpl b/src/views/admin/partials/menu.tpl index ba84482e4a..ef2e3f1e16 100644 --- a/src/views/admin/partials/menu.tpl +++ b/src/views/admin/partials/menu.tpl @@ -19,8 +19,8 @@ {{{ if user.privileges.admin:privileges }}}
  • [[admin/menu:manage/privileges]]
  • {{{ end }}} {{{ if user.privileges.admin:users }}}
  • [[admin/menu:manage/users]]
  • {{{ end }}} {{{ if user.privileges.admin:groups }}}
  • [[admin/menu:manage/groups]]
  • {{{ end }}} + {{{ if user.privileges.admin:admins-mods }}}
  • [[admin/menu:manage/admins-mods]]
  • {{{ end }}} {{{ if user.privileges.superadmin }}} -
  • [[admin/menu:manage/admins-mods]]
  • [[admin/menu:manage/registration]]
  • [[admin/menu:manage/tags]]
  • [[admin/menu:manage/uploads]]
  • @@ -190,8 +190,8 @@ {{{ if user.privileges.admin:privileges }}}
  • [[admin/menu:manage/privileges]]
  • {{{ end }}} {{{ if user.privileges.admin:users }}}
  • [[admin/menu:manage/users]]
  • {{{ end }}} {{{ if user.privileges.admin:groups }}}
  • [[admin/menu:manage/groups]]
  • {{{ end }}} + {{{ if user.privileges.admin:admins-mods }}}
  • [[admin/menu:manage/admins-mods]]
  • {{{ end }}} {{{ if user.privileges.superadmin }}} -
  • [[admin/menu:manage/admins-mods]]
  • [[admin/menu:manage/registration]]
  • [[admin/menu:manage/tags]]
  • [[admin/menu:manage/uploads]]