Name
global.ScrumUserGroupsAjax
Description
Returns groups name and sysids for scrum users.
Script
var ScrumUserGroupsAjax = Class.create();
ScrumUserGroupsAjax.prototype = Object.extendsObject(AbstractAjaxProcessor, {
_getRoleIds: function() {
var arrRoleNames = ["scrum_user", "scrum_admin", "scrum_release_planner", "scrum_sprint_planner", "scrum_story_creator"];
var arrRoleIds = [];
var record = new GlideRecord("sys_user_role");
record.addQuery("name", "IN", arrRoleNames.join(","));
record.query();
while (record.next())
arrRoleIds.push(record.sys_id + "");
return arrRoleIds;
},
_hasScrumRole: function(roleSysId, arrScrumRoleSysIds) {
// Case1: the passed in role is scrum role
for (var index = 0; index < arrScrumRoleSysIds.length; ++index)
if (arrScrumRoleSysIds[index] == "" + roleSysId)
return true;
return false;
},
_getAllroleIds: function(arrScrumRoleIds) {
var record = new GlideRecord("sys_user_role_contains");
record.addQuery("contains", "IN", arrScrumRoleIds.join(","));
record.query();
while (record.next())
arrScrumRoleIds.push(record.role + "");
return arrScrumRoleIds;
},
_getGroupIds: function() {
var arrScrumRoleIds = this._getRoleIds();
arrScrumRoleIds = this._getAllroleIds(arrScrumRoleIds);
var arrGroupIds = [];
var record = new GlideRecord("sys_group_has_role");
record.addQuery("role", "IN", arrScrumRoleIds.join(","));
record.query();
while (record.next()) {
arrGroupIds.push(record.group + "");
}
return arrGroupIds;
},
getGroupInfo: function() {
var arrGroupIds = this._getGroupIds();
var record = new GlideRecord("sys_user_group");
record.addQuery("sys_id", "IN", arrGroupIds.join(","));
record.query();
while (record.next()) {
this._addGroup(record.name, record.sys_id);
}
},
_addGroup: function(name, sysid) {
this._addCustomItem('group', name, sysid);
},
_addCustomItem: function(itemName, name, sysid) {
var item = this.newItem(itemName);
item.setAttribute("name", name);
item.setAttribute("sysid", sysid);
},
_addTeam: function(name, sysid) {
this._addCustomItem('team', name, sysid);
},
getTeamInfo: function () {
var scrumReleaseTeamSysId = this.getParameter('sysparm_scrum_team_sysid');
var recTeam = new GlideRecord ("scrum_pp_team");
recTeam.addQuery("sys_id", "!=", scrumReleaseTeamSysId);
recTeam.query ();
while (recTeam.next ()) {
this._addTeamInfo(recTeam);
}
},
_addTeamInfo: function(teamRecord) {
var recTeamName = new GlideRecord ("scrum_pp_team_name");
if (recTeamName.get(teamRecord.getValue('team_name'))) {
if( recTeamName.getValue('name') ) {
this._addTeam(recTeamName.getValue('name'), teamRecord.getValue('sys_id'));
}
}
},
type: 'ScrumUserGroupsAjax'
});
Sys ID
8a1a8d33c302210028d7d56bc3d3ae20