- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2021 09:59 AM
I have requirement 'Current Assignment group members, plus problem management team and Submitter should be able to cancel problem. User other than those should not be able to cancel the ticket.
I have implemented for submitter and Problem Management group. But not able to do for current assignment group. Below is the business rule:
var gr = new GlideRecord('problem');
var isOpenedBy = gr.opened_by;
var usrID = gs.getUserID();
var assignGrp = gr.assignment_group;
var grp = new GlideRecord('sys_user_group');
grp.addQuery('name',assignGrp);
grp.query();
if(grp.next()){
var assignGrpID = grp.sys_id;
}
var assignMember = new isMemberOfGroup().grpMember(usrID,assignGrpID);
if(assignMember == 'false' || assignMember == false){
current.setAbortAction(true);
gs.addErrorMessage('You dont have permission to cancel the problem');
}
Script Include:
var isMemberOfGroup = Class.create();
isMemberOfGroup.prototype = {
grpMember: function(usrID,grpID){
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('user',usrID);
gr.addQuery('group',grpID);
gr.query();
if(gr.next()){
return true;
}
else{
return false;
}
},
type: 'isMemberOfGroup'
};
Please help
Solved! Go to Solution.
- Labels:
-
Problem Management
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2021 10:24 AM
Hi,
You no need to use Gliderecord and Script include. You can check the logged in user is member of group or not using isMemberOf() . Please see below code to check loggedin user is member of problem grp or assignment group
//check logged in user is member of problem managemnt grp
var pblm_grpmem= gs.getUser().isMemberOf('problem managament');//update group name
//get the problem assignment grp
var asg_name= current.assignment_group.getDisplayValue();
//check logged in user is member of problem assignment grp
var asg_grpmem=gs.getUser().isMemberOf(asg_name);//update group name
if(pblm_grpmem == false && asg_grpmem == false && current.opened_by!=gs.getUserID())
{
//if all conditions are not satiisfied then abort the cation
gs.addErrorMessage('You dont have permission to cancel the problem');
current.setAbortAction(true);
}
If I have answered your question please mark my response as correct and/or helpful.
Thanks,
Suseela P.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2021 01:01 PM
I agree with
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-28-2021 01:07 PM
Of course, if State is not read-only, users would be able to just Cancel from list view, the condition on the UI Action would be useless. Cleverer users would be able to do the same using a variety of methods. The best solution is to implement the check in the Script Include meant for that (new ProblemStateUtils().canMarkDuplicateOrCancel()
) and call the same method in a/the Business Rule too.