mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-05 23:30:36 +01:00
fix: #8069, dont show hidden groups in search
This commit is contained in:
@@ -101,7 +101,7 @@ define('admin/manage/groups', ['translator', 'benchpress'], function (translator
|
|||||||
}, function (html) {
|
}, function (html) {
|
||||||
translator.translate(html, function (html) {
|
translator.translate(html, function (html) {
|
||||||
groupsEl.find('[data-groupname]').remove();
|
groupsEl.find('[data-groupname]').remove();
|
||||||
groupsEl.find('tr').after(html);
|
groupsEl.find('tbody').append(html);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -291,7 +291,7 @@ SocketGroups.search = async (socket, data) => {
|
|||||||
const groupData = await groups.getGroupsBySort(data.options.sort, 0, groupsPerPage - 1);
|
const groupData = await groups.getGroupsBySort(data.options.sort, 0, groupsPerPage - 1);
|
||||||
return groupData;
|
return groupData;
|
||||||
}
|
}
|
||||||
|
data.options.filterHidden = data.options.filterHidden || !await user.isAdministrator(socket.uid);
|
||||||
return await groups.search(data.query, data.options);
|
return await groups.search(data.query, data.options);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -309,6 +309,13 @@ SocketGroups.loadMore = async (socket, data) => {
|
|||||||
|
|
||||||
SocketGroups.searchMembers = async (socket, data) => {
|
SocketGroups.searchMembers = async (socket, data) => {
|
||||||
data.uid = socket.uid;
|
data.uid = socket.uid;
|
||||||
|
const [isOwner, isAdmin] = await Promise.all([
|
||||||
|
groups.ownership.isOwner(socket.uid, data.groupName),
|
||||||
|
user.isAdministrator(socket.uid),
|
||||||
|
]);
|
||||||
|
if (!isOwner && !isAdmin) {
|
||||||
|
throw new Error('[[error:no-privileges]]');
|
||||||
|
}
|
||||||
return await groups.searchMembers(data);
|
return await groups.searchMembers(data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -196,6 +196,15 @@ describe('Groups', function () {
|
|||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should not return hidden groups', async function () {
|
||||||
|
await Groups.create({
|
||||||
|
name: 'hiddenGroup',
|
||||||
|
hidden: '1',
|
||||||
|
});
|
||||||
|
const result = await socketGroups.search({ uid: testUid }, { query: 'hiddenGroup' });
|
||||||
|
assert.equal(result.length, 0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('.isMember()', function () {
|
describe('.isMember()', function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user