|
|
|
@ -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)));
|
|
|
|
|