Restricting Groups availability through Business Query and not ACL for Request
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-06-2024 08:46 AM
Hi All,
Once Request submitted from HR catalog Item, Request No will be generated Followed by --> RITM
So this Request/RITM should be Visible to only HR & HRIS group & its members not to any one else other than this 2(HR/HRIS) groups.
I need solution through Query Business Rule.
I have tried the Query Business Rule but it is not working as Expected, I am adding same script below if any body can help me modyfying it or giving me correct solution would be helpful.
Before Query:
(function executeRule(current, previous /*null when async*/ ) {
if (!checkGroup())
current.addQuery("cat_item", "!=", '7c2a1a638700c210558c2f0d8bbb356d');
function checkGroup() {
var grpMember = new GlideRecord('sys_user_grmember');
grpMember.addQuery('user', gs.getUserID());
grpMember.addQuery('group', '2222a6eb8700c210558c2f0d8bbb35da');
grpMember.query();
return grpMember.hasNext();
}
})(current, previous);
Thanks In Advance!
Anku.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-24-2024 09:57 PM
Hi @Anki3 ,
Try with this script-
(function executeRule(current, previous /*null when async*/) {
// Check if the current user is a member of the HR or HRIS group
if (!checkGroup()) {
// If not a member, add query condition to restrict visibility
current.addQuery('requested_for', gs.getUserID()); // Only allow visibility to the current user
current.addQuery('u_requested_for_group', 'NOT IN', ['HR', 'HRIS']); // Exclude HR and HRIS groups
}
function checkGroup() {
var user = gs.getUser();
var hrGroup = user.isMemberOf('HR');
var hrisGroup = user.isMemberOf('HRIS');
return hrGroup || hrisGroup;
}
})(current, previous);