Make only one field editable other filed will be read only using ACL

--oooo--
Tera Contributor
 
1 ACCEPTED SOLUTION

Sandeep Rajput
Tera Patron
Tera Patron

You need to define a Table.None ACL with read operation and in the role list add the role to whom you would like to provide the read access of the Table.

Screenshot 2023-04-05 at 8.52.34 PM.pngScreenshot 2023-04-05 at 8.52.44 PM.pngScreenshot 2023-04-05 at 11.44.26 PM.png

Screenshot 2023-04-05 at 11.36.12 PM.pngScreenshot 2023-04-05 at 11.36.22 PM.png

As a second step you need define Table.None ACL with write permission to allow users edit records within the table

Screenshot 2023-04-05 at 11.48.10 PM.png

As a third step you need to define a Table.Field Level Write ACLs on different columns to allow only specific role (admin) who can edit it. Make sure to not to include role of user whom you want to provide write access on a single field

 

In fourth step, create a Table. Field level write ACL on the single field where you would like to give access to the end user (the only field where user will have write access). Here add the end user role in the role list.

Screenshot 2023-04-05 at 11.48.28 PM.png

Finally when you will impersonate with your end user you should see outcome like the following when you try to edit a cell.

In the following screenshot user doesn't have access to change Group field. When he tries to change an error shows up.

Screenshot 2023-04-05 at 11.50.37 PM.png

 

In the following example User field can be updated by the end user.

Screenshot 2023-04-05 at 11.50.43 PM.png

Hope this helps.

View solution in original post

3 REPLIES 3

Sandeep Rajput
Tera Patron
Tera Patron

You need to define a Table.None ACL with read operation and in the role list add the role to whom you would like to provide the read access of the Table.

Screenshot 2023-04-05 at 8.52.34 PM.pngScreenshot 2023-04-05 at 8.52.44 PM.pngScreenshot 2023-04-05 at 11.44.26 PM.png

Screenshot 2023-04-05 at 11.36.12 PM.pngScreenshot 2023-04-05 at 11.36.22 PM.png

As a second step you need define Table.None ACL with write permission to allow users edit records within the table

Screenshot 2023-04-05 at 11.48.10 PM.png

As a third step you need to define a Table.Field Level Write ACLs on different columns to allow only specific role (admin) who can edit it. Make sure to not to include role of user whom you want to provide write access on a single field

 

In fourth step, create a Table. Field level write ACL on the single field where you would like to give access to the end user (the only field where user will have write access). Here add the end user role in the role list.

Screenshot 2023-04-05 at 11.48.28 PM.png

Finally when you will impersonate with your end user you should see outcome like the following when you try to edit a cell.

In the following screenshot user doesn't have access to change Group field. When he tries to change an error shows up.

Screenshot 2023-04-05 at 11.50.37 PM.png

 

In the following example User field can be updated by the end user.

Screenshot 2023-04-05 at 11.50.43 PM.png

Hope this helps.

For me this process results in the role being able to write to all fields or no fields at all. I am a little confused at Step three, where an ACL is being added for admin on different columns? I don't understand why this is needed admin override should allow admin to write to any field, if needed, correct?

 

If I understand correctly, 4 ACL's will be created, correct?
read - Table.none - role
write - Table.none - no role
write - table.field(s)? - admin
write - table.field - role

@y-allen Third step is not needed, you can use write - table.field - role to allow write access to a specific field.