fix: #7901, handle group names that are translation keys

This commit is contained in:
Barış Soner Uşaklı
2019-10-02 22:20:09 -04:00
parent c5ffd8cc74
commit 3455c27a8d
4 changed files with 15 additions and 3 deletions

View File

@@ -1,6 +1,7 @@
'use strict';
const groups = require('../../groups');
const user = require('../../user');
const categories = require('../../categories');
const privileges = require('../../privileges');
const plugins = require('../../plugins');
@@ -51,6 +52,14 @@ Categories.setPrivilege = async function (socket, data) {
if (!data) {
throw new Error('[[error:invalid-data]]');
}
const [userExists, groupExists] = await Promise.all([
user.exists(data.member),
groups.exists(data.member),
]);
if (!userExists && !groupExists) {
throw new Error('[[error:no-user-or-group]]');
}
if (Array.isArray(data.privilege)) {
await Promise.all(data.privilege.map(privilege => groups[data.set ? 'join' : 'leave']('cid:' + data.cid + ':privileges:' + privilege, data.member)));