fix(overriderules): allows every user to be added to the override rules (#1333)
* fix: allows every user to be added to the override rules * chore: code cleanup * fix(overriderules): displaying more than ten users at a time * fix(overriderules): pageSize unaffected by duplicate includeIds Co-authored-by: Gauthier <mail@gauthierth.fr> * fix: allows every user to be added to the override rules * chore(overriderules): readding override rules after rebase * chore(overriderules): removing empty file * chore(overriderules): fixing bad merge --------- Co-authored-by: Gauthier <mail@gauthierth.fr>
This commit is contained in:
@@ -3812,6 +3812,11 @@ paths:
|
|||||||
required: false
|
required: false
|
||||||
schema:
|
schema:
|
||||||
type: string
|
type: string
|
||||||
|
- in: query
|
||||||
|
name: includeIds
|
||||||
|
required: false
|
||||||
|
schema:
|
||||||
|
type: string
|
||||||
responses:
|
responses:
|
||||||
'200':
|
'200':
|
||||||
description: A JSON array of all users
|
description: A JSON array of all users
|
||||||
|
|||||||
@@ -32,7 +32,14 @@ const router = Router();
|
|||||||
|
|
||||||
router.get('/', async (req, res, next) => {
|
router.get('/', async (req, res, next) => {
|
||||||
try {
|
try {
|
||||||
const pageSize = req.query.take ? Number(req.query.take) : 10;
|
const includeIds = [
|
||||||
|
...new Set(
|
||||||
|
req.query.includeIds ? req.query.includeIds.toString().split(',') : []
|
||||||
|
),
|
||||||
|
];
|
||||||
|
const pageSize = req.query.take
|
||||||
|
? Number(req.query.take)
|
||||||
|
: Math.max(10, includeIds.length);
|
||||||
const skip = req.query.skip ? Number(req.query.skip) : 0;
|
const skip = req.query.skip ? Number(req.query.skip) : 0;
|
||||||
const q = req.query.q ? req.query.q.toString().toLowerCase() : '';
|
const q = req.query.q ? req.query.q.toString().toLowerCase() : '';
|
||||||
let query = getRepository(User).createQueryBuilder('user');
|
let query = getRepository(User).createQueryBuilder('user');
|
||||||
@@ -44,6 +51,10 @@ router.get('/', async (req, res, next) => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (includeIds.length > 0) {
|
||||||
|
query.andWhereInIds(includeIds);
|
||||||
|
}
|
||||||
|
|
||||||
switch (req.query.sort) {
|
switch (req.query.sort) {
|
||||||
case 'updated':
|
case 'updated':
|
||||||
query = query.orderBy('user.updatedAt', 'DESC');
|
query = query.orderBy('user.updatedAt', 'DESC');
|
||||||
@@ -84,6 +95,7 @@ router.get('/', async (req, res, next) => {
|
|||||||
const [users, userCount] = await query
|
const [users, userCount] = await query
|
||||||
.take(pageSize)
|
.take(pageSize)
|
||||||
.skip(skip)
|
.skip(skip)
|
||||||
|
.distinct(true)
|
||||||
.getManyAndCount();
|
.getManyAndCount();
|
||||||
|
|
||||||
return res.status(200).json({
|
return res.status(200).json({
|
||||||
|
|||||||
@@ -578,7 +578,10 @@ export const UserSelector = ({
|
|||||||
|
|
||||||
const users = defaultValue.split(',');
|
const users = defaultValue.split(',');
|
||||||
|
|
||||||
const res = await fetch(`/api/v1/user`);
|
const res = await fetch(
|
||||||
|
`/api/v1/user?includeIds=${encodeURIComponent(defaultValue)}`
|
||||||
|
);
|
||||||
|
|
||||||
if (!res.ok) {
|
if (!res.ok) {
|
||||||
throw new Error('Network response was not ok');
|
throw new Error('Network response was not ok');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,18 +127,18 @@ const OverrideRuleTiles = ({
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
setKeywords(keywords);
|
setKeywords(keywords);
|
||||||
const users = await Promise.all(
|
const allUsersFromRules = rules
|
||||||
rules
|
.map((rule) => rule.users)
|
||||||
.map((rule) => rule.users?.split(','))
|
.filter((users) => users)
|
||||||
.flat()
|
.join(',');
|
||||||
.filter((userId) => userId)
|
if (allUsersFromRules) {
|
||||||
.map(async (userId) => {
|
const res = await fetch(
|
||||||
const res = await fetch(`/api/v1/user/${userId}`);
|
`/api/v1/user?includeIds=${encodeURIComponent(allUsersFromRules)}`
|
||||||
if (!res.ok) throw new Error();
|
|
||||||
const user: User = await res.json();
|
|
||||||
return user;
|
|
||||||
})
|
|
||||||
);
|
);
|
||||||
|
if (!res.ok) throw new Error();
|
||||||
|
const users: User[] = (await res.json()).results;
|
||||||
|
setUsers(users);
|
||||||
|
}
|
||||||
setUsers(users);
|
setUsers(users);
|
||||||
})();
|
})();
|
||||||
}, [rules]);
|
}, [rules]);
|
||||||
|
|||||||
Reference in New Issue
Block a user