Skip to content

US: M2.9 Toggle reuse content library #239

@gviedma-aulasneo

Description

@gviedma-aulasneo

User story

As a Library Admin, I want to enable or disable public reuse of a library's published content directly from the library sidebar, so the rest of my team can use it in their courses without needing an explicit role assignment.

Acceptance criteria

  • The toggle is located in the library sidebar, below the "Manage Library Team" entry point.
  • The toggle label is "Allow public reuse"
  • The toggle is visible to all users who can see the sidebar, but only interactive for users with manage_library_team on that library.
  • Users without manage_library_team see the toggle in its current state but cannot interact with it.
  • The default state is Off.
  • When turned On, all authenticated Studio users can view and reuse published items from that library via course authoring. Draft content remains hidden.
  • This does not create a role assignment or explicit permission grant.
  • If a user already has a role on the library, their existing permissions are unchanged.
  • When turned Off, reuse access for unaffiliated Studio users is removed going forward.
  • While saving, the control is disabled and shows a saving state.
  • On success, a success toast appears.
  • On error, an error message appears with a Retry action.

Test cases

Setup

  • Admin A has manage_library_team for Library 1.
  • Member M is a library team member without manage_library_team.
  • User U has a Studio account and no roles in Library 1.
  • Library 1 has published and draft items.

Scenarios

  1. Admin sees the toggle and it is Off by default
    Given: I am logged in as Admin A
    When: I open Library 1
    Then: I see the toggle in the sidebar below "Manage Library Team"
    And: the toggle is Off by default

  2. Admin can turn the toggle On
    Given: I am Admin A and the toggle is Off
    When: I turn it On
    Then: the control disables while saving
    And: on success a success toast appears
    And: all authenticated Studio users can view and reuse published items from Library 1
    And: draft content remains hidden
    And: no role assignment is created

  3. Admin can turn the toggle Off
    Given: I am Admin A and the toggle is On
    When: I turn it Off
    Then: the control disables while saving
    And: on success a success toast appears
    And: reuse access for unaffiliated Studio users is removed going forward

  4. Member without manage_library_team sees the toggle but cannot interact with it
    Given: I am logged in as Member M and the toggle is On
    When: I open Library 1
    Then: I see the toggle in the On state
    And: the toggle is not interactive

  5. Error shows a retry action
    Given: I am Admin A and I toggle the state
    When: the save fails
    Then: an error message appears with a Retry action
    And: the toggle returns to its previous state

  6. Unaffiliated user cannot reuse content when toggle is Off
    Given: I am User U and the toggle is Off for Library 1
    When: I go to course authoring and open the reuse content picker
    Then: I do not see Library 1 or its items

  7. Unaffiliated user can reuse published content when toggle is On
    Given: I am User U and the toggle is On for Library 1
    When: I go to course authoring and open the reuse content picker
    Then: I can see Library 1's published items
    And: I do not see draft items

Design

https://www.figma.com/design/onU2END2OXaF7RRLWEHsZI/AuthZ---v2?node-id=7639-26180&t=FLJ7Zz9Qhu9MtJVZ-4

Out of scope

  • 401 and 403 use the existing auth error view. 404 and server errors use the existing not found or generic error view.

Notes

  • This toggle replaces allow_public_read and is translated to allow_public_reuse. Current behavior is preserved.
  • Granting reuse also implies view access for the library. This is not a permission or role assignment, it is an attribute of the library.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Ready for Development

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions