The CreatorCon Call for Content is officially open! Get started here.

ACL not working as expected.

conradofonseca
Tera Contributor

I have added a field called "analysis_notes" to a table and I have to make it always editable for users with the "abc" role.

 

There is a prevoiusly existing write ACL for all fields in the table (custom_table.*) that prevents editing when state is Closed.

 

I figured I just had to create a write ACL for that field, and for that role. It looks like this:

 

Operation: write

Name: custom_table.analysis_notes

Roles: abc

 

Its not working! After the record gets closed, all fields become read-only. I tried the Security Debugger and the ACL evaluates to "Cached=False".

 

conradofonseca_0-1739193195765.png

 

I have also tried:

-Waiting over the weekend and check if it started working (I know how silly this sounds, but I've heard it worked for someone with a similar issue)

-Deactivating old ACL

-Removing the role from the user I impersonate and adding it again

-Adding the role to myself

-Testing from an incognito browser

-Having a teammate test

 

Update:

For some reason it is looking for the role "admin" instead of "abc", which is the one I configured in the ACL.

conradofonseca_0-1739214500819.png

 

 

 

1 ACCEPTED SOLUTION

Ankur Bawiskar
Tera Patron
Tera Patron

@conradofonseca 

If table level WRITE blocks then field level WRITE won't help.

User needs to pass table.None WRITE ACL 1st if present and then field level will be evaluated

Your table level ACL is blocking and hence not working

 

AnkurBawiskar_0-1739196741821.png

 

1 workaround is design a UI page to take input for that field and then use GlideRecord to update the record.

No ACLs to be configured.

That UI page will be invoked from UI action and this UI action will be shown only to those users

I have created a blog for the same. please enhance

Update record using UI page and UI action 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

3 REPLIES 3

Ankur Bawiskar
Tera Patron
Tera Patron

@conradofonseca 

If table level WRITE blocks then field level WRITE won't help.

User needs to pass table.None WRITE ACL 1st if present and then field level will be evaluated

Your table level ACL is blocking and hence not working

 

AnkurBawiskar_0-1739196741821.png

 

1 workaround is design a UI page to take input for that field and then use GlideRecord to update the record.

No ACLs to be configured.

That UI page will be invoked from UI action and this UI action will be shown only to those users

I have created a blog for the same. please enhance

Update record using UI page and UI action 

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

There is a table ACL but deactivating it doesn't work either.

Actually you are right, there was a condition on the table level ACL I was overlooking. 

 

Didn't need to use the workaround.

 

Thanks