- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-11-2022 12:11 PM
Hi All,
Please help me on below ACL Part
there 5-groups of List
arr = [ software, hardware, database, network, telecom ] , if Loggedin user is member of in any of group then make field editable .
I know gs.getUser().isMemberOf('groupname') --> but it works for single group. but if we have array of groups then how to fix this ? please help me on this.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 11:29 AM
There you go:
var member = IsMember();
gs.addInfoMessage(gs.getMessage("member " + IsMember()));
if (current.assigned_to == gs.getUserID() || member)
answer = true;
else
answer = false;
function IsMember() {
var groups = gs.getProperty('optimal_groups').split(',');
for (var ind in groups) {
if (gs.getUser().isMemberOf(groups[ind])) {
return true;
}
}
return false;
}
Aman Kumar

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-11-2022 12:29 PM
try the the following code in your ACL script
var array =[ software, hardware, database, network, telecom ];
for (var i = 0; i < array.length; i++){
var grp = array[i];
if(gs.getUser().isMemberOf(grp))
{
answer=true;
break;
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 10:15 AM
Hi ,
I tried below method , but i am getting undefined
var member = IsMember();
gs.addInfoMessage(gs.getMessage("member " + IsMember()));
if (gs.hasRole('role') || member)
answer = true;
else
answer = false;
function IsMember() {
var result = false;
var gr = gs.getProperty('optimal_groups').split(',');
for (var i = 0; i < gr.length; i++) {
if (gs.getUser().isMemberOf(gr[i])) {
result = true;
break;
}
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 10:29 AM
Hi
I would suggest not using hardocded names of group and use sys_ids and store them somewhere in the system property as comma separated sys_ids as string.
answer = checkMembership();
function checkMembership(){
var groups = gs.getProperty("group_sys_ids_write").split(',');//name of your system property
for(var ind in groups){
if(gs.getUser().isMemberOf(groups[ind])){
return true;
}
return false;
}
Aman Kumar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 10:39 AM
Hi Aman,
1. I want to get/store result(true/false) in to one Variable. because we have lot conditions comparing in IF-statement. like below .
if (gs.hasRole('role') || IsGroupmember || current.assigned_to == gs.getUserID() || ......etc)
2. can we use BREAK ? because i want to stop looping if looged in user is member in at-least any one of array groups ?