- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-08-2024 02:29 AM
Hi,
I have an script include to make it UI Action visibile on RITM table, if logged in user is member of the RITM associated SC_Task assignment group members. Please find the below script and it's working as expected.
Now, I have an around 35 assignment groups which name starts with "360". I want to make it UI action visible if user is member of any one of the 35 assignment groups.
Make it UI action visible, if logged in user is member of the RITM associated SC_Task assignment group members OR users who is part of the 360 groups. Could you please help me on this? Thanks
Script Include:
var CheckUserGroup = Class.create(); CheckUserGroup.prototype = { initialize: function() { }, isUserInRitmGroup: function(ritmGr) { var ritmId = ritmGr.getUniqueValue(); // Add a query to check if the "Required Action" checkbox is true var ritm = new GlideRecord('sc_req_item'); ritm.get(ritmId); if (ritm.u_requires_action == false) { //g_form.setDisplay('u_requires_action', false); return false; } var taskGr = new GlideRecord("sc_task"); taskGr.addQuery('parent', ritmId); taskGr.query(); while (taskGr.next()) { var userId = gs.getUserID(); //var groupId = taskGr.assignment_group.getDisplayValue(); var groupId = taskGr.getValue("assignment_group"); var groupMemberGr = new GlideRecord('sys_user_grmember'); groupMemberGr.addQuery('user', userId); groupMemberGr.addQuery('group', groupId); groupMemberGr.query(); if (groupMemberGr.next()) { return true; } } return false; }, type: 'CheckUserGroup' }; |
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-08-2024 02:55 AM
Hi @Rajesh Bandila ,
Try this updated script:
var CheckUserGroup = Class.create();
CheckUserGroup.prototype = {
initialize: function() {
},
isUserInRitmGroup: function(ritmGr) {
var ritmId = ritmGr.getUniqueValue();
var ritm = new GlideRecord('sc_req_item');
if (!ritm.get(ritmId) || !ritm.u_requires_action) {
return false;
}
var taskGr = new GlideRecord("sc_task");
taskGr.addQuery('parent', ritmId);
taskGr.query();
var userId = gs.getUserID();
while (taskGr.next()) {
var groupId = taskGr.getValue("assignment_group");
var groupMemberGr = new GlideRecord('sys_user_grmember');
groupMemberGr.addQuery('user', userId);
groupMemberGr.addQuery('group', groupId);
groupMemberGr.query();
if (groupMemberGr.next()) {
return true;
}
}
// Check if the user is in any group that starts with "360"
var groupGr = new GlideRecord('sys_user_grmember');
groupGr.addQuery('user', userId);
groupGr.query();
while (groupGr.next()) {
var group = new GlideRecord('sys_user_group');
if (group.get(groupGr.group) && group.name.startsWith('360')) {
return true;
}
}
return false;
},
type: 'CheckUserGroup'
};
Thanks.
Hope this helps.
If my response turns useful please mark it helpful and accept solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-08-2024 02:38 AM
Does this work:
var CheckUserGroup = Class.create();
CheckUserGroup.prototype = {
initialize: function() {
},
isUserInRitmGroup: function(ritmGr) {
var ritmId = ritmGr.getUniqueValue();
// Add a query to check if the "Required Action" checkbox is true
var ritm = new GlideRecord('sc_req_item');
ritm.get(ritmId);
if (ritm.u_requires_action == false) {
//g_form.setDisplay('u_requires_action', false);
return false;
}
var taskGr = new GlideRecord("sc_task");
taskGr.addQuery('parent', ritmId);
taskGr.query();
while (taskGr.next()) {
var userId = gs.getUserID();
//var groupId = taskGr.assignment_group.getDisplayValue();
var groupId = taskGr.getValue("assignment_group");
var groupMemberGr = new GlideRecord('sys_user_grmember');
groupMemberGr.addQuery('user', userId);
var groupCondition = groupMemberGr.addQuery('group', groupId);
groupCondition.addOrCondition('group.name', 'STARTSWITH', '360');
groupMemberGr.query();
if (groupMemberGr.next()) {
return true;
}
}
return false;
},
type: 'CheckUserGroup'
};
Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-08-2024 02:55 AM
Hi @Rajesh Bandila ,
Try this updated script:
var CheckUserGroup = Class.create();
CheckUserGroup.prototype = {
initialize: function() {
},
isUserInRitmGroup: function(ritmGr) {
var ritmId = ritmGr.getUniqueValue();
var ritm = new GlideRecord('sc_req_item');
if (!ritm.get(ritmId) || !ritm.u_requires_action) {
return false;
}
var taskGr = new GlideRecord("sc_task");
taskGr.addQuery('parent', ritmId);
taskGr.query();
var userId = gs.getUserID();
while (taskGr.next()) {
var groupId = taskGr.getValue("assignment_group");
var groupMemberGr = new GlideRecord('sys_user_grmember');
groupMemberGr.addQuery('user', userId);
groupMemberGr.addQuery('group', groupId);
groupMemberGr.query();
if (groupMemberGr.next()) {
return true;
}
}
// Check if the user is in any group that starts with "360"
var groupGr = new GlideRecord('sys_user_grmember');
groupGr.addQuery('user', userId);
groupGr.query();
while (groupGr.next()) {
var group = new GlideRecord('sys_user_group');
if (group.get(groupGr.group) && group.name.startsWith('360')) {
return true;
}
}
return false;
},
type: 'CheckUserGroup'
};
Thanks.
Hope this helps.
If my response turns useful please mark it helpful and accept solution.