groups: add app access tests
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user