Get a first look at what's coming. The Developer Passport Australia Release Preview kicks off March 12. Dive in! 

Unable to make state readOnly using script if current user is from specific group

ahmadfaiz
Tera Contributor

Client Script 
function onLoad() {
// Check the user's assignment group membership
var assignmentGroupName = 'Your Assignment Group Name';
var userSysId = g_user.userID;

var ga = new GlideAjax('CheckUserInGroup');
ga.addParam('sysparm_name', 'userInGroup');
ga.addParam('sysparm_user', userSysId);
ga.addParam('sysparm_group', assignmentGroupName);
ga.getXML(updateFieldAttributes);
}

function updateFieldAttributes(response) {
var responseObj = response.responseXML.documentElement;
var isInGroup = responseObj.getAttribute('isInGroup');

if (isInGroup === 'true') {
// User is in the assignment group, make the field read/write
g_form.setReadWrite('field_name', true);
} else {
// User is not in the assignment group, make the field read-only
g_form.setReadOnly('field_name', true);
}
}

 

 

 

 

 

Script Include
var CheckUserInGroup = Class.create();
CheckUserInGroup.prototype = {
userInGroup: function() {
var userSysId = this.getParameter('sysparm_user');
var groupName = this.getParameter('sysparm_group');
var user = new GlideUser(userSysId);
var userGroups = user.getMyGroups();
var isInGroup = false;

userGroups.forEach(function(group) {
if (group.getName() === groupName) {
isInGroup = true;
}
});

return new XMLAnswer(isInGroup.toString());
},
type: 'CheckUserInGroup'
};

 

 

 

This script is not working, I have changed the field_name and group with needed group

5 REPLIES 5

Anurag Tripathi
Mega Patron

Hi

Looks like your script include is client callable, amongst other issues.

 

Use this

Script include, make sure its client callable

AnuragTripathi_0-1693305026131.png

 

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

	userInGroup: function() {
		var groupName = this.getParameter('sysparm_group');
		return gs.getUser().isMemberOf(''+groupName);
	},
    type: 'CheckUserInGroup'
});

 

Client script

function onLoad() {
var assignmentGroupName = 'Team Development Code Reviewers';
var userSysId = g_user.userID;
alert(userSysId );
var ga = new GlideAjax('CheckUserInGroup');
ga.addParam('sysparm_name', 'userInGroup');
ga.addParam('sysparm_user', userSysId);
ga.addParam('sysparm_group', assignmentGroupName);
ga.getXML(updateFieldAttributes);
}
function updateFieldAttributes(response) {
var responseObj = response.responseXML.documentElement.getAttribute("answer"); 
alert(responseObj );
if (responseObj  == true) {
// User is in the assignment group, make the field read/write
g_form.setReadWrite('field_name', true);
} else {
// User is not in the assignment group, make the field read-only
g_form.setReadOnly('field_name', true);
}
}
-Anurag