avalonmediasystem / avalon

Avalon Media System – Samvera Application
http://www.avalonmediasystem.org/
Apache License 2.0
94 stars 51 forks source link

Units in Avalon #5935

Open joncameron opened 4 months ago

joncameron commented 4 months ago

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.

It should also be easy to add, remove or change the name of a Unit—things which are not currently very intuitive.

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.

Use case

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.

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.

A New Object

New Views for Units

Mockups

Unit Admin Page

Screenshot 2024-09-23 at 2 49 11 PM

Collection Admin Page

Screenshot 2024-09-23 at 2 52 46 PM Screenshot 2024-09-23 at 2 55 58 PM
elynema commented 2 months ago

Units can have contact email, website URL, just like Collections. What about poster images? For inheritance, every collection in the unit has the same permissions as the unit, can add users but not remove them. Same with inheritance down to the item - can add users but not remove them.

First thing to test is inheriting Special Access down to the item level. When changing Item Access for the unit or collection, need a list of items where Item Access was set at the item level to determine whether those items should remain custom or be updated to match the new default for the unit or collection. This could possibly be accomplished through a link to the Blacklight results page for the collection with the Item Access facet expanded. If change Item Access for the Collection, should probably also include a notification to the user of "[x] number of items will be updated" with the number of items that will have Item Access updated.

Under Item Access at the item level, there should be an indication of the collection default so that collection owner can see if they are changing a setting to be different from the collection default.

Propose that we start with just the Special Access and Staff Roles at the Unit level. There is not a strong use case for have Item Access at the Unit level and making changes there. Also retain CDL at the Collection level; don't move to Unit.

Tickets: