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 users to edit HR case form

haripriya5
Tera Expert

I have an requirement to disable the HR case form fields to be disabled if user doesnt belong to a specific group and also has the hr admin role once the state of the case is Completed.

1 ACCEPTED SOLUTION

Jagadish Sanadi
Kilo Sage

Hello Haripriya,

 

Please try this code and confirm

 

// Script Include
var user = gs.getUserID();
var checkUser = new GlideRecord('sys_user_grmember');
checkUser.addQuery('user', user);
checkUser.addQuery('group', gs.getProperty('your_property_name')); // replace <sys_id_group> with actual sys_id of group.
checkUser.query();
if (checkUser.next()) {
return true;
} else {
var uRole = new GlideRecord('sys_user_has_role');
uRole.addEncodedQuery('role.nameSTARTSWITHadmin^user=' + user);
uRole.query();
if (uRole.next()) {
return true;
} else {
return false;
}
}


//Client SCript
if (g_form.getValue('state') == '3') {
var callSI = new GlideAjax('erValidationAjax');
callSI.addParam('sysparm_name', 'checkForRole');
callSI.getXML(callBack);
}


function callBack(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
if (answer == 'true') {
//Nothing


} else {
var fields = g_form.getEditableFields();
for (var x = 0; x < fields.length; x++) {
g_form.setReadOnly(fields[x], true);

}
}

 

 

Please mark useful if my response helped you

View solution in original post

1 REPLY 1

Jagadish Sanadi
Kilo Sage

Hello Haripriya,

 

Please try this code and confirm

 

// Script Include
var user = gs.getUserID();
var checkUser = new GlideRecord('sys_user_grmember');
checkUser.addQuery('user', user);
checkUser.addQuery('group', gs.getProperty('your_property_name')); // replace <sys_id_group> with actual sys_id of group.
checkUser.query();
if (checkUser.next()) {
return true;
} else {
var uRole = new GlideRecord('sys_user_has_role');
uRole.addEncodedQuery('role.nameSTARTSWITHadmin^user=' + user);
uRole.query();
if (uRole.next()) {
return true;
} else {
return false;
}
}


//Client SCript
if (g_form.getValue('state') == '3') {
var callSI = new GlideAjax('erValidationAjax');
callSI.addParam('sysparm_name', 'checkForRole');
callSI.getXML(callBack);
}


function callBack(response) {
var answer = response.responseXML.documentElement.getAttribute('answer');
if (answer == 'true') {
//Nothing


} else {
var fields = g_form.getEditableFields();
for (var x = 0; x < fields.length; x++) {
g_form.setReadOnly(fields[x], true);

}
}

 

 

Please mark useful if my response helped you