- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12 hours ago - last edited 10 hours ago
Hi Team,
I have written below script include script :
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10 hours ago
HI @JVINAY ,
please find the below script i have modified few lines , hope its helpful-
canCancelRequest: function(intakeID) {
var cir = new GlideRecord('u_cloud_request');
if (cir.get(intakeID)) {
// If user has u_cloud_admin role, allow
if (gs.hasRole('u_cloud_admin')) return true;
var user = gs.getUserID();
var grmembership = new GlideRecord("sys_user_grmember");
grmembership.addQuery("user", user);
// Check if user belongs to either Cloud Team or AWS Architecture Team
var groupCondition = grmembership.addQuery("group", "98280b79db3d3740ee5c24f405961998"); // Cloud Team
groupCondition.addOrCondition("group", "f383c41c1bd89850f08eba215b4bcbb8"); // AWS Architecture Team
grmembership.query();
if (grmembership.hasNext()) return true;
}
return false;
}
NOTE -
- addOrCondition() ensures the query checks both groups.
- If the user is in either group, grmembership.hasNext() will return true.
Thanks,
Rithika.ch
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11 hours ago
Hi @JVINAY
Your current logic almost does what you want — but the if condition for the admin check is returning early, meaning the rest of the code doesn’t run when the user doesn’t have that role. You just need to structure it a bit differently so that:
-
u_cloud_admin users are always allowed, and
-
Users without that role but in Cloud Team or AWS Architecture Team are also allowed.
Here’s the corrected version:
canCancelRequest: function(intakeID) {
var cir = new GlideRecord('u_cloud_request');
if (!cir.get(intakeID))
return false;
// Always allow users with the admin role
if (gs.hasRole('u_cloud_admin'))
return true;
// Check if user belongs to Cloud or AWS groups
var user = gs.getUserID();
var grMembership = new GlideRecord('sys_user_grmember');
grMembership.addQuery('user', user);
grMembership.addQuery('group', '98280b79db3d3740ee5c24f405961998'); // Cloud Team
grMembership.addOrCondition('group', 'f383c41c1bd89850f08eba215b4bcbb8'); // AWS Team
grMembership.query();
if (grMembership.hasNext())
return true;
// Otherwise deny
return false;
}
If you found my response helpful, I would greatly appreciate it if you could mark it as "Accepted Solution" and "Helpful."
Your support not only benefits the community but also encourages me to continue assisting. Thank you so much!
Thanks and Regards
Ravi Gaurav | ServiceNow MVP 2025,2024 | ServiceNow Practice Lead | Solution Architect
CGI
M.Tech in Data Science & AI
YouTube: https://www.youtube.com/@learnservicenowwithravi
LinkedIn: https://www.linkedin.com/in/ravi-gaurav-a67542aa/
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11 hours ago - last edited 10 hours ago
Hi @Ravi Gaurav
Thanks for Your reply
I have updated the code :
canCancelRequest: function(intakeID) {
var cir = new GlideRecord('u_cloud_request');
if (!cir.get(intakeID))
return false; {
if (gs.hasRole('u_cloud_admin')) return true;
var user = gs.getUserID();
var grmembership = new GlideRecord("sys_user_grmember");
grmembership.addQuery("user", user);
grmembership.addQuery("group", "98280b79db3d3740ee5c24f405961998" || "f383c41c1bd89850f08eba215b4bcbb8");
//grmembership.addOrCondition("group", "f383c41c1bd89850f08eba215b4bcbb8");
grmembership.query();
if (grmembership.hasNext()) {
return true;
}
Only Cloud team able to cancel
grMembership.addQuery('group', '98280b79db3d3740ee5c24f405961998'); // Cloud Team
AWS team not able to Cancel the request ,
Help me to Update the script for AWS team able to Cancel the request
Thank you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10 hours ago
Hi @JVINAY ,
Correct Script
canCancelRequest: function(intakeID) {
var cir = new GlideRecord('u_cloud_request');
if (!cir.get(intakeID)) {
return false;
}
// If user has u_cloud_admin role, allow
if (gs.hasRole('u_cloud_admin')) {
return true;
}
var user = gs.getUserID();
var grmembership = new GlideRecord("sys_user_grmember");
grmembership.addQuery("user", user);
// Add OR condition for both groups
var qc = grmembership.addQuery("group", "98280b79db3d3740ee5c24f405961998"); // Cloud Team
qc.addOrCondition("group", "f383c41c1bd89850f08eba215b4bcbb8"); // AWS Architecture Team
grmembership.query();
if (grmembership.hasNext()) {
return true;
}
return false;
}
Option 2: Using IN Operator
grmembership.addQuery("group", "IN", "98280b79db3d3740ee5c24f405961998,f383c41c1bd89850f08eba215b4bcbb8");Thanks,
Rithika.ch
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10 hours ago
sorry your requirement is not clear.
you want to check user's role or user's group membership?
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
