-
Notifications
You must be signed in to change notification settings - Fork 2
/
No_Certificate_Members.js
57 lines (48 loc) · 1.78 KB
/
No_Certificate_Members.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
var NonCertifiedMemberGroup = Class.create();
NonCertifiedMemberGroup.prototype = Object.extendsObject(AbstractAjaxProcessor, {
specialGroup: function(groupSysId) {
//Step 1: Get the user Sys IDs from SN Role - Base ITIL User group
var baseITILUsers = [];
var snBaseItilGroup = new GlideRecord('sys_user_grmember');
snBaseItilGroup.addQuery('group', '7909b9b713494700e7075a132244b08d');
snBaseItilGroup.query();
while (snBaseItilGroup.next()) {
baseITILUsers.push(snBaseItilGroup.getValue('user').toString());
}
//Step 2: Get the Group Sys ID with 0 member count and those groups which do not have any members present in baseITILUsers array
var groupNames = [];
var arrayUtil = new ArrayUtil();
var userGroup = new GlideRecord("sys_user_group");
userGroup.addActiveQuery();
userGroup.query();
while (userGroup.next()) {
var groupFilter = new GlideAggregate('sys_user_grmember');
groupFilter.addQuery('group',userGroup.sys_id.toString());
groupFilter.addAggregate('COUNT');
groupFilter.query();
//Check for groups with member count 0 and push them to groupNames array
var memberCount = 0;
if (groupFilter.next()) {
memberCount = groupFilter.getAggregate('COUNT');
if (memberCount == 0) {
groupNames.push(userGroup.sys_id.toString());
} else {
var found = 0;
var findGroup = new GlideRecord('sys_user_grmember');
findGroup.addQuery('group',userGroup.sys_id.toString());
findGroup.query();
while (findGroup.next()) {
if (arrayUtil.contains(baseITILUsers,findGroup.getValue('user').toString())) {
found += 1;
}
}
if (found == 0) {
groupNames.push(userGroup.sys_id.toString());
}
}
}
}
return groupNames;
},
type: 'NonCertifiedMemberGroup'
});