Feature #17493
Updated by Peter Amstutz about 3 years ago
Feature: user can put a project tree in "archive" state which makes it read-only to everyone
Proposed design:
* New boolean attribute of group "archived"
* Users with can_manage access can set "archived"
* Once set, "archived" cannot be cleared by users, only admins
* "archived" state applies to everything owned by the project, recursively. (same behavior as "trashed" projects)
* Archived objects are read-only for users and admins regardless of permissions (with limited exceptions for the archived_at field itself described above)
** Cannot create/move objects in an archived project (owner_uuid cannot be an archived project)
** Cannot move objects out of an archived project (owner_uuid cannot be changed)
** Cannot update any other field on archived objects, e.g. name, manifest_text
** Cannot delete objects owned by archived project or modify trash_at, delete_at
** Setting "archived" clears any "delete_at" fields of any object in the archived project
** Objects that were trashed before remain trashed, but will not be deleted
* Users with can_manage permission can still adjust sharing (create and remove permission links on archived objects)