-
Notifications
You must be signed in to change notification settings - Fork 52
Description
Description
Management of collections in large Avalon instances would be better served by Units being full objects with permissions attached. These permissions could then be inherited by collections for management and access control purposes. A unit is a grouping of collections for administrative and discovery purposes
It should also be easy to add, remove or change the name of a Unit.
Primary Changes
- A new Unit object is added
- Each Collection is the child of a parent Unit
- Staff and user permissions set at the Unit level also apply to child Collections and their objects
- Inherited permissions are able be revoked on media objects
- The Manager system group is retired, and the ability to create collections and be assigned a Manager role comes from the new Unit Administrator role
Permission Inheritance
Inheritance is already at work in Avalon via staff roles. Users in staff role for a collection receive permissions based on their role, and that applies to all objects within a collection.
Diagram of Inheritance
Use case
- A collection manager with many collections wants to manage access by their administrative department or unit
For example, a new staff member joins an area. Currently, a department with 12 collections would need to add that username individually to each collection.
Current pain points
- Adding or removing Units requires editing a yaml file
- For units with many collections, adding and removing collection staff is a manual and tedious process
DRY
Changing the inheritance model would mean 1 object changes, instead of 1000 children objects change. In an application like Avalon where object updates are costly, this is both tedious and redundant. Granting access, then revoking access for many items is painful.
Changes
New Object: Units - #6054
- Each Unit will be an object with NOID
- Collections become child objects of Units
- Attributes include name, description etc; full listing in
Views
Manage Content View
- Move "Manage Content" from /admin/collections to /admin
New Views for Units
- Unit landing page
- Unit admin page
Updates to Collection Views
- Collection Show View
- Collections Show View - Link to Unit on View Collections Page #6056
Permission Scheme Changes
-
Units have a new staff role, "Unit Administrator". Only Unit Administrators are able to add users to the Manager group for any collection within the unit. Unit Administrators are able to add users to any staff role for a unit. Multiple values are accepted to this field, in the way that is already used for Managers, Depositors etc. This new role removes the need for the Managers group.
-
Only Administrators are able to add users as Unit Administrators.
-
Only Unit Administrators are allowed to edit Unit metadata and to add new users to the Manager role
-
Managers can add users to staff roles for any collection
Permission Inheritance
- Special access settings inherit from parent collection - Items Inherit Unit- and Collection-level Special Access Settings #6059
- Staff roles inherit from parent collection Items Inherit Unit- and Collection-level Staff and Special Access Roles #6060
- can be assumed from collection (no special handling for these?)
- Items can have permissions inheritance revoked (for very sensitive or restricted items)