refactor: deprecate socket.emit('users.search') use api route
parent
083c74e059
commit
2279e37261
@ -1,43 +1,17 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
const user = require('../../user');
|
|
||||||
const pagination = require('../../pagination');
|
const pagination = require('../../pagination');
|
||||||
const privileges = require('../../privileges');
|
const api = require('../../api');
|
||||||
|
const sockets = require('..');
|
||||||
|
|
||||||
module.exports = function (SocketUser) {
|
module.exports = function (SocketUser) {
|
||||||
SocketUser.search = async function (socket, data) {
|
SocketUser.search = async function (socket, data) {
|
||||||
// TODO: depracate and use usersController.search
|
sockets.warnDeprecated(socket, 'GET /api/users');
|
||||||
if (!data) {
|
if (!data) {
|
||||||
throw new Error('[[error:invalid-data]]');
|
throw new Error('[[error:invalid-data]]');
|
||||||
}
|
}
|
||||||
const [allowed, isPrivileged] = await Promise.all([
|
const result = api.users.search(socket, data);
|
||||||
privileges.global.can('search:users', socket.uid),
|
|
||||||
user.isPrivileged(socket.uid),
|
|
||||||
]);
|
|
||||||
|
|
||||||
let filters = data.filters || [];
|
|
||||||
filters = Array.isArray(filters) ? filters : [filters];
|
|
||||||
if (!allowed ||
|
|
||||||
((
|
|
||||||
data.searchBy === 'ip' ||
|
|
||||||
data.searchBy === 'email' ||
|
|
||||||
filters.includes('banned') ||
|
|
||||||
filters.includes('flagged')
|
|
||||||
) && !isPrivileged)
|
|
||||||
) {
|
|
||||||
throw new Error('[[error:no-privileges]]');
|
|
||||||
}
|
|
||||||
const result = await user.search({
|
|
||||||
query: data.query,
|
|
||||||
page: data.page,
|
|
||||||
searchBy: data.searchBy,
|
|
||||||
sortBy: data.sortBy,
|
|
||||||
filters: data.filters,
|
|
||||||
paginate: data.paginate,
|
|
||||||
uid: socket.uid,
|
|
||||||
});
|
|
||||||
result.pagination = pagination.create(data.page, result.pageCount);
|
result.pagination = pagination.create(data.page, result.pageCount);
|
||||||
result['route_users:' + data.sortBy] = true;
|
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue