...
Here are a few ways that ACLS and versions of resources might interact. Ideas and use cases are welcome, especially if you have a certain way in which you might expect ACLs and Versioning to behave.
LDPRv - "Original Resource" - the original resource that has versions
LDPCv - the container that contains the versions of a resource; otherwise known as the TimeMap in memento
- Ignore any ACL on a versioned resource; instead honor the ACL that the LDPCv Original Resource (LDPRv) has. Essentially the versioned resource 'inherit' the ACL from the version container (LDPCv aka. TimeMap).
- If the LDPCv has no ACL - default back to the Original ResourceLDPRv?? Or perhaps the LDPCv points to some sort of default ACL?
- This scenario allows for the Original Resource LDPRv to potentially have a separate ACL from the versions of itself.
- Any versioned resource always has the same ACL as the Original Resource (LDPRv). In other words, the ACL on the Original Resource LDPCv always applies to all versions of the resource. If the ACL is changed or updated on the Original ResourceLDPCv, all the versions then have that same change/update. The ACL would be stored and referenced from the Original Resource LDPRv (not stored in the versions).
- When a LDPR is versioned, honor the ACL that's on the versioned resource that was there at the time the version was created.
- If the URL of the ACL pointed to never changes, then all the versions will have the same ACL restrictions as the Original ResourceLDPRv.
- If the URL of the ACL pointed to changes over time, then the versions may have different ACL restrictions, from both each other and the Original Resource.
- This scenario gets complicated quickly, especially when an ACL that's on a version, but no longer on the Original ResourceLDPRv, gets removed from the system.
- Version the ACL along with the Original ResourceLDPRv.
- This would be a tricky scenario to work with as an admin would potentially be unable to manage access appropriately. Given that mementos are immutable, the versioned ACLs wouldn't be able to change and an admin would be unable to change authorizations for versions of resources.