Show Catalog variable to a particular User criteria
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2025 08:58 AM
I have a catalog item,
There is a variable named cateogry and i am having 3 User criterias - critera x, y, z. I want to make category variable visible only to users in user criteria z. How can i achieve this without making a seperate catalog item.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2025 09:05 AM
The following code on Server side can give you list of the user criteria for the current logged in user:
SNC.UserCriteriaLoader.getAllUserCriteria()
You can give it a try on "Scripts - Background" first To check the output.
You can then use this function in a script include which you may call from a client script from your catalog item. Based on the results, you can determine if to make the category variable visible.
If you found this helpful, please hit the thumbs-up button and mark as correct. That helps others find their solutions.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-06-2025 09:59 AM - edited 03-06-2025 10:00 AM
Hi @rohanbhatia ,
You can create a Client callable script include and a catalog client script for this
SI
var testMeetsUserCriteria = Class.create();
testMeetsUserCriteria.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
checkUserClient: function() {
return this.checkUser(this.getParameter('arrayOfUserCriteria').split(','), this.getParameter('userId'));
},
checkUser: function(arrayOfUserCriteria, user) {
user = user ? user : gs.getUserID();
return sn_uc.UserCriteriaLoader.userMatches(user, arrayOfUserCriteria);
},
type: 'testMeetsUserCriteria'
});
Client Script
var a = new GlideAjax('testMeetsUserCriteria');
a.addParam('arrayOfUserCriteria', 'ebb789d3ff4131003f07ffffffffff3f,d2d2e20557130300d873ac71ef94f9aa,fd8f94c3b58b8110f8779c9460b514ce' /*Comma separated usercriteria sysids*/ )
a.addParam('sysparm_name', 'checkUserClient');
// a.addParam('userId',g_user.userID)
a.getXMLAnswer(function(ans) {
if (ans == 'false') {
g_form.setDisplay('variable_name', false)
}
});
Please mark my answer as helpful/correct if it resolves your query.
Regards,
Chaitanya