Before Query Business Rule to restrict access
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
12-10-2024 01:53 PM
Can someone please help me with a query business rule to achieve this requirement?
Vendors should only be able to see records actively assigned to them via their group.
All help is greatly appreciated.
5 REPLIES 5
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-22-2025 08:04 AM
try this
(function executeRule(current, gScripting, gRequest, gResponse) {
// Get the logged-in user's groups
var userGroups = gs.getUser().getMyGroups();
var vendorGroups = [];
// Check if any of the user's groups are vendor groups
var grGroup = new GlideRecord('sys_user_group');
grGroup.addQuery('sys_id', 'IN', userGroups.toString());
grGroup.addQuery('u_vendor_group', true);
grGroup.query();
while (grGroup.next()) {
vendorGroups.push(grGroup.sys_id.toString());
}
// If the user is in any vendor group, restrict the records they can see
if (userGroups.length > 0) {
current.addQuery('assignment_group', 'IN', userGroups.join(','));
} else {
current.addQuery('sys_id', ''); // No records will be returned
}
})();
If my response helped please mark it correct and close the thread so that it benefits future readers.
Regards,
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
