General pointer re ACL's

I have a “Review” document, that is a response document used to record various stages as the parent document moves through our Review process. At each “level” in the process, the permissions on the document need to change. A draft document needs to be approved by a Reviewer, then goes to the SEPG committee for approval, and finally to the Leadership Team committee. I have created Access Control List entries for “Reviewers”, “SEPG” and “LT” and added the appropriate people to each list.

I need the permissions in the form to change dynamically as the status of the document is changed. For example, the Reviewer must have access to the document, but once they click the button that changes the Status to “Approved by Reviewer”, then the access needs to be restricted to the SEPG group, so that a Reviewer can’t “push it up the line”. This also needs to happen for the SEPG/LT groups. The document based on the form is opened for editing when the Reviewer gets to it (and I have controlled this through an Authors field), so I need some way to reload the document and check the new permission status when the button is clicked.

Can anyone suggest an approach in which I can use the Authors field or similar in conjunction with the ACL groups to achieve this in script? I am trying to read up on all the ACL related methods, etc, but I am getting pretty lost in there…

Subject: General pointer re ACL’s

Author-level access for all of these groups/roles and an Authors-type field is all you need. Just change the value in the Authors field from the originator’s name to [Reviewers] when the document is submitted, then to [SEPG] when the initial reviewer signs off, then to [LT] when [SEPG] approves, then finally to an admin role when [LT] is done with the doc. (That will allow a database owner to “reset” the document to a previous level if necessary.)

Subject: RE: General pointer re ACL’s

Thank you very much - I will go and try this now :slight_smile: crosses fingers and hopes it is as easy as it sounds

Subject: RE: General pointer re ACL’s

That has worked beautifully EXCEPT… (There’s always a “but” involved, isn’t there? sigh)

Once the code changes the name in the Author field to the next level, the person cannot save the document again, including not being able to save the change of Author. That is:

The document is assigned to a Reviewer.

The Reviewer updates the document and clicks an “Update and Save” button.

The code behind the button updates the assignment to the next level (SEPG), but now the Reviewer can’t save the assignment change.

I have been thinking that one way around this is to store the name of the current reviewer in a variable, and get the code to check both the Author field and the variable for authorisation. If the Reviewer’s name is in the variable, the code will finish running, including saving the document, but then the variable is gone, so they can’t click the button a second time and move it “up the line”.

This idea sounds feasible in theory, but I don’t know how to test the variable for author rights.

Any suggestions?