diff --git a/public/src/admin/manage/privileges.js b/public/src/admin/manage/privileges.js index 709abcf055..23c137e2d1 100644 --- a/public/src/admin/manage/privileges.js +++ b/public/src/admin/manage/privileges.js @@ -77,17 +77,12 @@ define('admin/manage/privileges', [ }; Privileges.refreshPrivilegeTable = function () { - socket.emit('admin.categories.getPrivilegeSettings', cid, function (err, privileges) { + socket.emit('admin.categories.getPrivilegeSettings', ajaxify.data.admin ? 'admin' : cid, function (err, privileges) { if (err) { return app.alertError(err.message); } - var tpl; - if (cid !== 'admin') { - tpl = cid ? 'admin/partials/privileges/category' : 'admin/partials/privileges/global'; - } else { - tpl = 'admin/partials/privileges/admin'; - } + var tpl = cid ? 'admin/partials/privileges/category' : 'admin/partials/privileges/global'; Benchpress.parse(tpl, { privileges: privileges, }, function (html) { @@ -150,7 +145,7 @@ define('admin/manage/privileges', [ autocomplete.user(inputEl, function (ev, ui) { var defaultPrivileges; - if (cid === 'admin') { + if (ajaxify.url === '/admin/manage/privileges/admin') { defaultPrivileges = ['manage:categories']; } else { defaultPrivileges = cid ? ['find', 'read', 'topics:read'] : ['chat']; @@ -184,7 +179,7 @@ define('admin/manage/privileges', [ autocomplete.group(inputEl, function (ev, ui) { var defaultPrivileges; - if (cid === 'admin') { + if (ajaxify.url === '/admin/manage/privileges/admin') { defaultPrivileges = ['groups:manage:categories']; } else { defaultPrivileges = cid ? ['groups:find', 'groups:read', 'groups:topics:read'] : ['groups:chat']; diff --git a/src/controllers/admin/privileges.js b/src/controllers/admin/privileges.js index 3ebe13d7ec..3e1f76fe29 100644 --- a/src/controllers/admin/privileges.js +++ b/src/controllers/admin/privileges.js @@ -6,23 +6,14 @@ const privileges = require('../../privileges'); const privilegesController = module.exports; privilegesController.get = async function (req, res) { - const cid = req.params.cid ? parseInt(req.params.cid, 10) || 'admin' : 0; + const cid = req.params.cid ? parseInt(req.params.cid, 10) || 0 : 0; + const isAdminPriv = req.params.cid === 'admin'; let method; - const type = { - global: false, - admin: false, - cid: false, - }; if (cid > 0) { method = privileges.categories.list.bind(null, cid); - type.cid = true; } else if (cid === 0) { - method = privileges.global.list; - type.global = true; - } else { - method = privileges.admin.list; - type.admin = true; + method = isAdminPriv ? privileges.admin.list : privileges.global.list; } const [privilegesData, categoriesData] = await Promise.all([ @@ -34,9 +25,8 @@ privilegesController.get = async function (req, res) { cid: 0, name: '[[admin/manage/privileges:global]]', icon: 'fa-list', - }); - categoriesData.unshift({ - cid: 'admin', + }, { + cid: 'admin', // what do? name: '[[admin/manage/privileges:admin]]', icon: 'fa-lock', }); @@ -53,10 +43,10 @@ privilegesController.get = async function (req, res) { }); res.render('admin/manage/privileges', { - type: type, privileges: privilegesData, categories: categoriesData, selectedCategory: selectedCategory, cid: cid, + admin: isAdminPriv, }); }; diff --git a/src/groups/create.js b/src/groups/create.js index 9ca9d4d2c4..76aec0afe0 100644 --- a/src/groups/create.js +++ b/src/groups/create.js @@ -73,7 +73,6 @@ module.exports = function (Groups) { } Groups.validateGroupName = function (name) { - console.log(name); if (!name) { throw new Error('[[error:group-name-too-short]]'); } diff --git a/src/groups/index.js b/src/groups/index.js index 72ba6d0d7a..231b876c1c 100644 --- a/src/groups/index.js +++ b/src/groups/index.js @@ -46,7 +46,7 @@ Groups.removeEphemeralGroups = function (groups) { return groups; }; -var isPrivilegeGroupRegex = /^cid:(?:\d+|admin):privileges:[\w:]+$/; +var isPrivilegeGroupRegex = /^cid:\d+:privileges:[\w:]+$/; Groups.isPrivilegeGroup = function (groupName) { return isPrivilegeGroupRegex.test(groupName); }; diff --git a/src/privileges/admin.js b/src/privileges/admin.js index 5ab6ce80f4..5b6238093d 100644 --- a/src/privileges/admin.js +++ b/src/privileges/admin.js @@ -31,8 +31,8 @@ module.exports = function (privileges) { } const payload = await utils.promiseParallel({ labels: getLabels(), - users: helpers.getUserPrivileges('admin', 'filter:privileges.admin.list', privileges.admin.userPrivilegeList), - groups: helpers.getGroupPrivileges('admin', 'filter:privileges.admin.groups.list', privileges.admin.groupPrivilegeList), + users: helpers.getUserPrivileges(0, 'filter:privileges.admin.list', privileges.admin.userPrivilegeList), + groups: helpers.getGroupPrivileges(0, 'filter:privileges.admin.groups.list', privileges.admin.groupPrivilegeList), }); // This is a hack because I can't do {labels.users.length} to echo the count in templates.js payload.columnCount = payload.labels.users.length + 2; diff --git a/src/socket.io/admin/categories.js b/src/socket.io/admin/categories.js index a9ecd1269f..50e61f94bc 100644 --- a/src/socket.io/admin/categories.js +++ b/src/socket.io/admin/categories.js @@ -61,15 +61,9 @@ Categories.setPrivilege = async function (socket, data) { throw new Error('[[error:no-user-or-group]]'); } - if (isNaN(parseInt(data.cid, 10))) { - await privileges[data.cid][data.set ? 'give' : 'rescind']( - Array.isArray(data.privilege) ? data.privilege : [data.privilege], data.member - ); - } else { - await privileges.categories[data.set ? 'give' : 'rescind']( - Array.isArray(data.privilege) ? data.privilege : [data.privilege], data.cid, data.member - ); - } + await privileges.categories[data.set ? 'give' : 'rescind']( + Array.isArray(data.privilege) ? data.privilege : [data.privilege], data.cid, data.member + ); await events.log({ uid: socket.uid, diff --git a/src/views/admin/manage/privileges.tpl b/src/views/admin/manage/privileges.tpl index ce513ee2dc..9930a240cb 100644 --- a/src/views/admin/manage/privileges.tpl +++ b/src/views/admin/manage/privileges.tpl @@ -11,15 +11,11 @@
- {{{ if type.global }}} - - {{{ end }}} - {{{ if type.admin }}} - - {{{ end }}} - {{{ if type.cid }}} + {{{ if cid }}} - {{{ end }}} + {{{ else }}} + + {{{ endif }}}
diff --git a/src/views/admin/partials/privileges/admin.tpl b/src/views/admin/partials/privileges/admin.tpl deleted file mode 100644 index 7c4fc0e5fa..0000000000 --- a/src/views/admin/partials/privileges/admin.tpl +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - - - - - - - - - - - - - {function.spawnPrivilegeStates, privileges.groups.name, ../privileges} - - - - - - -
[[admin/manage/categories:privileges.section-group]]{privileges.labels.groups.name}
- - - - {privileges.groups.name} -
-
- -
-
-
- [[admin/manage/categories:privileges.inherit]] -
-
- - - - - - - - - - - - - - - - - - - - {function.spawnPrivilegeStates, privileges.users.username, ../privileges} - - - - - - - - - - - -
[[admin/manage/categories:privileges.section-user]]{privileges.labels.users.name}
- - - -
{../icon:text}
- -
{privileges.users.username}
- -
- [[admin/manage/privileges:global.no-users]] - -