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.

ACL for listview not working

Abigail
Tera Expert

What I need is an ACL on the list view: users with the x_role should have access to records with the x_type. If they don’t have the role, those types of change requests should not be visible.

I tested this with a user who only has the itil role, and when I impersonate that user, the records are still visible. I need it so that only users with the x_role or the admin role can see those records.

Current ACL:

Type: Record
Operation: Read
Decision Type: Allow if
Name: Change Request
Script:

 

answer = (current.type == 'x_type') && gs.hasRole('x_role');

I tried also without scripting but still not working

15 REPLIES 15

GlideFather
Tera Patron

@Abigail the script seems to be incorrect, try something like this:

if (current.type == 'x_type') && gs.hasRole('x_role') {
answer = true; 
} else {
answer = false;
}

 

 

EDIT: answer = true

_____
This reply is 100 % GlideFather and 0 % AI

Hello @GlideFather 
Same result,  x_type change requests are still visible when I impersonate a user with only the itil role.

@Abigail wait wait wait, x_type is a filed to be hidden or its value is a prerequisite to display/hide it?

 

ACL for your_table.x_type 

 

and scripted condition:

if (gs.hasRole('x_role')) {
answer = true; 
} else {
answer = false;
}

//eventually Exactly
if (gs.hasRoleExactly('x_role')) {
answer = true; 
} else {
answer = false;
}

 

 

_____
This reply is 100 % GlideFather and 0 % AI

@Abigail 
or I got inspired from existing records and it could be this one-liner:

 

- depending on the x_type, i'm not sure what is the meaning of it, based on that:

answer = (gs.hasRole('x_role'));
answer = (current.type == 'x_type' && gs.hasRole('x_role'));

 

_____
This reply is 100 % GlideFather and 0 % AI