- 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-12-2022 10:44 AM
Yes, that's why I have enclosed the script in a function, as soon as it finds that the user is part of any one group, it will return the value and won't do further checks.
Aman Kumar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 10:52 AM
Hi,
I did like this , but it is always returning "FALSE" values even for Group members.
var member = IsMember();
gs.addInfoMessage(gs.getMessage("member " + IsMember())); // getting "FALSE " all the time
if (gs.hasRole('role') || 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;
}
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 10:58 AM
How are you storing the sys_id in the system property?
and gs.hadRole('role')//hope you are passing the correct role name here.
Also in your info message what are you getting?
Aman Kumar
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 11:08 AM
getting message "false";
help me on this , is return false; should be inside of For-loop OR Outside of For-loop?????
if we use "return false; " inside of FOR-Loop with below code getting "FALSE" even for group members
var member = IsMember();
gs.addInfoMessage(gs.getMessage("member " + IsMember() + "--" + member));
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;
}
}
if we use "return false; " Outside of FOR-Loop with below code getting "TRUE" for group members
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;
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-12-2022 11:25 AM
2nd code is correct, I think i missed one '}'
return false should be outside for loop.
You can go on with this.
Aman Kumar