ACL's based on a condition

kemmy1
Tera Guru

I want everyone to be able to write to the table if status != Pending, but only a certain amount of people to be able to write if status = Pending.

My ACLs so far (which works)

table write status!=pending and role = role_a

table write status=pending and role = role_a and supervisor is me (a reference field on the form)

 

BUT if a record is in status=pending, I only want the "supervisor is me" to only update a few fields, so I added:

table.* write status=pending and role = admin

table.field write status=pending and supervisor is me and role = role_a

 

Now the other folks are not able to write to any fields to any record no matter what the status (I only want them not be able to write if status=pending).  It works great for "supervisor is me"

 

Am I missing something?  Do table.* acl's not take into consideration the conditions?

 

Lisa

2 REPLIES 2

alekhya11
Tera Expert

Hi Kemmy1 , 
Try Following the below approach 
 ACL 1 : table Level when status is not pending to allow all roles to have write access 

 ACL 2 :  table level ACL with condition status= pending and define the required roles 

 ACL 3/4/5 : table.field level ACL with required condition and role to give specific access

as per your post you have mentioned you also included table.* write status=pending and role = admin : which is restricting the access for other roles . try to deactivate this ACL and check.

Please feel free to mark correct/helpful. If I answered your query.

Unfortunately, this does nothing.  (table.* = false, everything is the same).