Notifications

42 views

Description

  • Update Reference qualifier or filter for groups field in the new On-Call Schedule Wizard (New York)
  • How to filter the groups in the new wizard in NY release
  • UI page $oc_creation_wizard.do is not editable, so I can not filter the groups

This KB will point you in the right direction on where you would need to make your customizations.

Release or Environment

New York and above

Instructions

  • You will not have access to edit the page, as it's backend code
  • However, I was able to view the code and see what it's doing
  • if you're Rota Admin, you will get all active groups
  • else you'll get, directly managed groups, managed groups through delegation, or managed groups through preferences
  • Which can be customized via the script include OnCallCreationWizardUtilsSNC, method: _filterGroupsByAccess
  • The calls being made are also using another script include: OnCallSecurityNG
  • See below, code from OnCallCreationWizardUtilsSNC:
    getAccessDetails: function() {
var details = {};
details.isRotaAdmin = new OnCallSecurityNG().rotaAdminAccess();
if (!details.isRotaAdmin) {
var userSysId = gs.getUserID();
details.groupIds = this._filterGroupsByAccess(userSysId);
}
return details;
},

_filterGroupsByAccess: function(userSysId) {
var ocsNg = new OnCallSecurityNG();
var filteredGroups = {};

// directly managed groups
var userGroupGr = ocsNg.getManagedGroups(userSysId, true);
while (userGroupGr.next())
filteredGroups[userGroupGr.sys_id + ""] = true;

// managed groups through delegation
var userHasRoleGr = ocsNg.getDelegatedGroups(userSysId);
while (userHasRoleGr.next())
filteredGroups[userHasRoleGr.granted_by + ""] = true;

// managed groups through preferences
var groupIds = ocsNg.getManagedGroupsByPreferences(userSysId);
groupIds.forEach(function(groupId) {
filteredGroups[groupId] = true;
});

return this._getKeys(filteredGroups);
},

Article Information

Last Updated:2020-03-23 09:09:35
Published:2020-03-20