Skip to content

Commit

Permalink
fix: dont show search input if user doesn't have tag search priv
Browse files Browse the repository at this point in the history
  • Loading branch information
barisusakli committed Mar 27, 2023
1 parent 68db271 commit a83734f
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 12 deletions.
22 changes: 15 additions & 7 deletions public/src/modules/tagFilter.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,17 @@ define('tagFilter', ['hooks', 'alerts', 'bootstrap'], function (hooks, alerts, b
}
initialTags = selectedTags.slice();

const toggleSearchVisibilty = searchEl.parent('[component="tag/filter"]').length &&
app.user.privileges['search:tags'];

el.on('show.bs.dropdown', function () {
el.find('.dropdown-toggle').css({ visibility: 'hidden' });
searchEl.removeClass('hidden');
searchEl.css({
'z-index': el.find('.dropdown-toggle').css('z-index') + 1,
});
if (toggleSearchVisibilty) {
el.find('.dropdown-toggle').css({ visibility: 'hidden' });
searchEl.removeClass('hidden');
searchEl.css({
'z-index': el.find('.dropdown-toggle').css('z-index') + 1,
});
}

function doSearch() {
const val = searchEl.find('input').val();
Expand Down Expand Up @@ -61,8 +66,11 @@ define('tagFilter', ['hooks', 'alerts', 'bootstrap'], function (hooks, alerts, b
});

el.on('hidden.bs.dropdown', function () {
el.find('.dropdown-toggle').css({ visibility: 'inherit' });
searchEl.addClass('hidden');
if (toggleSearchVisibilty) {
el.find('.dropdown-toggle').css({ visibility: 'inherit' });
searchEl.addClass('hidden');
}

searchEl.off('click');
searchEl.find('input').off('keyup');

Expand Down
9 changes: 4 additions & 5 deletions src/socket.io/topics/tags.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,11 +73,6 @@ module.exports = function (SocketTopics) {

// used by tag filter search
SocketTopics.tagFilterSearch = async function (socket, data) {
const allowed = await privileges.global.can('search:tags', socket.uid);
if (!allowed) {
throw new Error('[[error:no-privileges]]');
}

let cids = [];
if (Array.isArray(data.cids)) {
cids = await privileges.categories.filterCids('topics:read', data.cids, socket.uid);
Expand All @@ -87,6 +82,10 @@ module.exports = function (SocketTopics) {

let tags = [];
if (data.query) {
const allowed = await privileges.global.can('search:tags', socket.uid);
if (!allowed) {
throw new Error('[[error:no-privileges]]');
}
tags = await topics.searchTags({
query: data.query,
cid: cids.length === 1 ? cids[0] : null,
Expand Down

0 comments on commit a83734f

Please sign in to comment.