mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-01 11:35:55 +01:00
Admin/users (#8762)
* feat: wip admin/users * feat: more work * feat: more fixes * feat: #8662, verified/unverified user groups * feat: add filter * feat: change user search to use filters array * refactor: remove unused search call * fix: tests * fix: cant join system groups * fix: upgrade script
This commit is contained in:
committed by
GitHub
parent
bfaeb27c11
commit
872bacf1c4
@@ -21,7 +21,7 @@ usersController.index = async function (req, res, next) {
|
||||
flagged: usersController.getFlaggedUsers,
|
||||
};
|
||||
|
||||
if (req.query.term) {
|
||||
if (req.query.query) {
|
||||
await usersController.search(req, res, next);
|
||||
} else if (sectionToController[section]) {
|
||||
await sectionToController[section](req, res, next);
|
||||
@@ -35,19 +35,25 @@ usersController.search = async function (req, res) {
|
||||
privileges.global.can('search:users', req.uid),
|
||||
user.isPrivileged(req.uid),
|
||||
]);
|
||||
|
||||
if (!allowed || ((req.query.searchBy === 'ip' || req.query.searchBy === 'email' || req.query.bannedOnly === 'true' || req.query.flaggedOnly === 'true') && !isPrivileged)) {
|
||||
let filters = req.query.filters || [];
|
||||
filters = Array.isArray(filters) ? filters : [filters];
|
||||
if (!allowed ||
|
||||
((
|
||||
req.query.searchBy === 'ip' ||
|
||||
req.query.searchBy === 'email' ||
|
||||
filters.includes('banned') ||
|
||||
filters.includes('flagged')
|
||||
) && !isPrivileged)
|
||||
) {
|
||||
throw new Error('[[error:no-privileges]]');
|
||||
}
|
||||
const [searchData, isAdminOrGlobalMod] = await Promise.all([
|
||||
user.search({
|
||||
query: req.query.term,
|
||||
query: req.query.query,
|
||||
searchBy: req.query.searchBy || 'username',
|
||||
page: req.query.page || 1,
|
||||
sortBy: req.query.sortBy || 'joindate',
|
||||
onlineOnly: req.query.onlineOnly === 'true',
|
||||
bannedOnly: req.query.bannedOnly === 'true',
|
||||
flaggedOnly: req.query.flaggedOnly === 'true',
|
||||
filters: filters,
|
||||
}),
|
||||
user.isAdminOrGlobalMod(req.uid),
|
||||
]);
|
||||
|
Reference in New Issue
Block a user