Skip to content

Units as Objects and Permission Inheritance Changes #5935

@joncameron

Description

@joncameron

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

Image

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

Updates to Collection Views

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

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions