Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

How to restrict form submission if user is not a part of a group in catalog item?

User205031
Tera Contributor

Hi All,

I have a requirement. I have two fields 'Requested for' and 'Product Group'. I need to check if 'Requested for' user is part of the 'Product Group'. If he is a part of the group the form will get submitted or else it will throw an error message and the form won't get submitted.

I have written one client script and script include but its not restricting the users to submit.

Client Script:

function onSubmit() {
//Type appropriate comment here, and begin script below

var userName = g_form.getValue('requested_for');
alert(userName);
var prodGrp = g_form.getValue('product_team');
alert(prodGrp);

var ga = new GlideAjax('RestrictUser');
ga.addParam("sysparm_name", "checkUser");
ga.addParam("sysparm_user_name", userName);
ga.addParam("sysparm_grp_name", prodGrp);
ga.getXML(checkProdTeam);


function checkProdTeam(response) {
var answer = response.responseXML.documentElement.getAttribute("answer");

alert(answer);
var stop = false;

if (answer == 'false') {
stop = true;
//g_form.setValue('product_team', answer);
g_form.addErrorMessage(getMessage('User not part of Product Team'));
return false;
}
}

}

 

Script Include:

var RestrictUser = Class.create();
RestrictUser.prototype = Object.extendsObject(AbstractAjaxProcessor, {

checkUser: function(){

var uname = this.getParameter('sysparm_user_name');
var pgroup = this.getParameter('sysparm_grp_name');

var a = new GlideRecord('sys_user_grmember');
a.addQuery('user', uname);
a.addQuery('group', pgroup);
a.query();
if(a.next()){
return true;
}
else {
return false;
}

},


type: 'RestrictUser'
});

Please help!

Thanks in advance!

10 REPLIES 10

User205031
Tera Contributor

Hi @Ankur Bawiskar , can you help me with this?

Thanks!