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

Labels

verawoodReleased in Verawood

Type

No type
No fields configured for issues without a type.

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions