groups: add app access tests

This commit is contained in:
Girish Ramakrishnan
2025-02-12 14:09:09 +01:00
parent fda0a918f0
commit bd44bb4534
5 changed files with 153 additions and 15 deletions

View File

@@ -83,7 +83,7 @@ async function add(group, auditSource) {
await eventlog.add(eventlog.ACTION_GROUP_ADD, auditSource, { id, name, source });
return { id, name, source };
return { id, name, source, appIds: [] };
}
async function del(group, auditSource) {
@@ -101,12 +101,21 @@ async function del(group, auditSource) {
await eventlog.add(eventlog.ACTION_GROUP_REMOVE, auditSource, { group });
}
async function postProcess(group) {
assert.strictEqual(typeof group, 'object');
const results = await database.query('SELECT id FROM apps WHERE JSON_CONTAINS(accessRestrictionJson, ?, "$.groups")', [ `"${group.id}"` ]);
group.appIds = results.map(r => r.id);
}
async function get(id) {
assert.strictEqual(typeof id, 'string');
const result = await database.query(`SELECT ${GROUPS_FIELDS} FROM userGroups WHERE id = ? ORDER BY name`, [ id ]);
if (result.length === 0) return null;
await postProcess(result[0]);
return result[0];
}
@@ -116,16 +125,11 @@ async function getByName(name) {
const result = await database.query(`SELECT ${GROUPS_FIELDS} FROM userGroups WHERE name = ?`, [ name ]);
if (result.length === 0) return null;
await postProcess(result[0]);
return result[0];
}
async function getAppIds(groupId) {
assert.strictEqual(typeof groupId, 'string');
const results = await database.query('SELECT id FROM apps WHERE JSON_CONTAINS(accessRestrictionJson, ?, "$.groups")', [ `"${groupId}"` ]);
return results.map(r => r.id);
}
async function getWithMembers(id) {
assert.strictEqual(typeof id, 'string');
@@ -138,7 +142,8 @@ async function getWithMembers(id) {
const result = results[0];
result.userIds = result.userIds ? result.userIds.split(',') : [ ];
result.appIds = await getAppIds(result.id);
await postProcess(result);
return result;
}
@@ -147,7 +152,7 @@ async function list() {
const results = await database.query('SELECT ' + GROUPS_FIELDS + ' FROM userGroups ORDER BY name');
for (const r of results) {
r.appIds = await getAppIds(r.id);
await postProcess(r);
}
return results;
@@ -161,7 +166,7 @@ async function listWithMembers() {
results.forEach(function (result) { result.userIds = result.userIds ? result.userIds.split(',') : [ ]; });
for (const r of results) {
r.appIds = await getAppIds(r.id);
await postProcess(r);
}
return results;