Built something you're proud of? Tell the story. A quick G2 review of App Engine or Build Agent helps other developers see what's possible on ServiceNow. Share your experience.

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