diff --git a/source/_images/educator_how_tos/library_add_team_member_button.png b/source/_images/educator_how_tos/library_add_team_member_button.png new file mode 100644 index 000000000..5f9f52003 Binary files /dev/null and b/source/_images/educator_how_tos/library_add_team_member_button.png differ diff --git a/source/_images/educator_how_tos/library_info_button.png b/source/_images/educator_how_tos/library_info_button.png new file mode 100644 index 000000000..042140cc2 Binary files /dev/null and b/source/_images/educator_how_tos/library_info_button.png differ diff --git a/source/_images/educator_how_tos/library_manage_access_button.png b/source/_images/educator_how_tos/library_manage_access_button.png new file mode 100644 index 000000000..12b064ac9 Binary files /dev/null and b/source/_images/educator_how_tos/library_manage_access_button.png differ diff --git a/source/_images/educator_how_tos/library_permissions_tab.png b/source/_images/educator_how_tos/library_permissions_tab.png new file mode 100644 index 000000000..79f780e20 Binary files /dev/null and b/source/_images/educator_how_tos/library_permissions_tab.png differ diff --git a/source/_images/educator_how_tos/library_team_add_new_role.png b/source/_images/educator_how_tos/library_team_add_new_role.png new file mode 100644 index 000000000..3537acafe Binary files /dev/null and b/source/_images/educator_how_tos/library_team_add_new_role.png differ diff --git a/source/_images/educator_how_tos/library_team_member_tab.png b/source/_images/educator_how_tos/library_team_member_tab.png new file mode 100644 index 000000000..8e968b76e Binary files /dev/null and b/source/_images/educator_how_tos/library_team_member_tab.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_assign.png b/source/_images/educator_how_tos/library_team_roles_assign.png new file mode 100644 index 000000000..51041589c Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_assign.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_assign_save.png b/source/_images/educator_how_tos/library_team_roles_assign_save.png new file mode 100644 index 000000000..57b6e7925 Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_assign_save.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_delete.png b/source/_images/educator_how_tos/library_team_roles_delete.png new file mode 100644 index 000000000..2f9ce2edc Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_delete.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_edit.png b/source/_images/educator_how_tos/library_team_roles_edit.png new file mode 100644 index 000000000..850fb580c Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_edit.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_edit_user_screen.png b/source/_images/educator_how_tos/library_team_roles_edit_user_screen.png new file mode 100644 index 000000000..5543ce998 Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_edit_user_screen.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_new_role_popup.png b/source/_images/educator_how_tos/library_team_roles_new_role_popup.png new file mode 100644 index 000000000..387392db7 Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_new_role_popup.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_remove_role_popup.png b/source/_images/educator_how_tos/library_team_roles_remove_role_popup.png new file mode 100644 index 000000000..65dfd2a2d Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_remove_role_popup.png differ diff --git a/source/_images/educator_how_tos/library_team_roles_tab.png b/source/_images/educator_how_tos/library_team_roles_tab.png new file mode 100644 index 000000000..d938a74e0 Binary files /dev/null and b/source/_images/educator_how_tos/library_team_roles_tab.png differ diff --git a/source/_images/educator_how_tos/library_user_permissions_info_button.png b/source/_images/educator_how_tos/library_user_permissions_info_button.png deleted file mode 100644 index c4ba2ce42..000000000 Binary files a/source/_images/educator_how_tos/library_user_permissions_info_button.png and /dev/null differ diff --git a/source/_images/educator_how_tos/library_user_permissions_manage_access.png b/source/_images/educator_how_tos/library_user_permissions_manage_access.png deleted file mode 100644 index eea07d35f..000000000 Binary files a/source/_images/educator_how_tos/library_user_permissions_manage_access.png and /dev/null differ diff --git a/source/_images/educator_how_tos/library_user_permissions_new_member.png b/source/_images/educator_how_tos/library_user_permissions_new_member.png deleted file mode 100644 index 8a84dceb7..000000000 Binary files a/source/_images/educator_how_tos/library_user_permissions_new_member.png and /dev/null differ diff --git a/source/_images/educator_how_tos/library_user_permissions_new_member_email.png b/source/_images/educator_how_tos/library_user_permissions_new_member_email.png deleted file mode 100644 index a7be76c7a..000000000 Binary files a/source/_images/educator_how_tos/library_user_permissions_new_member_email.png and /dev/null differ diff --git a/source/_images/educator_how_tos/library_user_permissions_promote_delete_member.png b/source/_images/educator_how_tos/library_user_permissions_promote_delete_member.png deleted file mode 100644 index 1c028e3cd..000000000 Binary files a/source/_images/educator_how_tos/library_user_permissions_promote_delete_member.png and /dev/null differ diff --git a/source/_images/release_notes/ulmo/admin_console_1.png b/source/_images/release_notes/ulmo/admin_console_1.png new file mode 100644 index 000000000..28f47d3f6 Binary files /dev/null and b/source/_images/release_notes/ulmo/admin_console_1.png differ diff --git a/source/_images/release_notes/ulmo/admin_console_2.png b/source/_images/release_notes/ulmo/admin_console_2.png new file mode 100644 index 000000000..a3ec45dc4 Binary files /dev/null and b/source/_images/release_notes/ulmo/admin_console_2.png differ diff --git a/source/_images/release_notes/ulmo/admin_console_3.png b/source/_images/release_notes/ulmo/admin_console_3.png new file mode 100644 index 000000000..9c9ec2c66 Binary files /dev/null and b/source/_images/release_notes/ulmo/admin_console_3.png differ diff --git a/source/community/release_notes/teak/teak_marketing_notes.rst b/source/community/release_notes/teak/teak_marketing_notes.rst index d721e939a..141a205b2 100644 --- a/source/community/release_notes/teak/teak_marketing_notes.rst +++ b/source/community/release_notes/teak/teak_marketing_notes.rst @@ -79,6 +79,11 @@ workflows that visually show changes before you apply them - plus a migration tool to move Legacy Library content forward. +**Granular Roles and Permissions for Libraries**: Assign Library Admin, Author, +Contributor, or User roles with specific permissions for viewing, editing, +publishing, and managing content—all managed from a central Administrative +Console that shows your entire team at a glance. + **Smart Notifications**: Never let students miss important discussions again! Keep learners engaged with timely alerts about new posts and announcements, delivered both in-platform and via email. diff --git a/source/community/release_notes/ulmo/feature_release_notes.rst b/source/community/release_notes/ulmo/feature_release_notes.rst index 1f298db56..3fc597dad 100644 --- a/source/community/release_notes/ulmo/feature_release_notes.rst +++ b/source/community/release_notes/ulmo/feature_release_notes.rst @@ -13,6 +13,7 @@ Open edX Ulmo Release - Product Release Notes ulmo_libraries ulmo_rp ulmo_notifications + ulmo_console ulmo_mobile_updates ulmo_catalog ulmo_reusable_lti diff --git a/source/community/release_notes/ulmo/ulmo_console.rst b/source/community/release_notes/ulmo/ulmo_console.rst new file mode 100644 index 000000000..fae9f044e --- /dev/null +++ b/source/community/release_notes/ulmo/ulmo_console.rst @@ -0,0 +1,111 @@ +.. _Ulmo console: + +Introducing the Administrative Console +###################################### + +The Ulmo release introduces the first version of the Administrative Console, a +central place where administrators can manage access for Open edX tools, +starting with :ref:`Ulmo Roles and Permissions`. The console is designed as an +extensible UI that will later support additional administrative workflows and +integrations. It is powered by the new roles and permissions model and is +intended to serve as a general purpose admin tool. + +What is in Ulmo for the Administrative Console +********************************************** + +In Ulmo, the Administrative Console focuses on managing access to libraries that +use the new Roles and Permissions service: + +* A library team management page that shows all users who have access to a + library, the roles they hold, and the available role definitions. + +* A list of users who have access to libraries across the instance, including + which libraries they can access and at what scope. + +* An overview of :ref:`Library Roles ` and what each role + allows a user to do in a library, for example view, edit, publish or manage + the team. + +* Search and filters by user, email, role and library so administrators can + quickly see who has access where. + +* The ability to grant, update or revoke access by assigning or removing roles + for a specific library. Users can hold more than one role and their effective + access is the combination of those roles. + +How to Access the Administrative Console +**************************************** + +#. From Studio, open a library where you already have a role. + + .. image:: /_images/release_notes/ulmo/admin_console_1.png + :alt: Studio Homepage, with a Library highlighted + +#. Use the :guilabel:`Manage Access` button in the right tray for that library + to open the Administrative Console in a new tab, already focused on that + library. + + .. image:: /_images/release_notes/ulmo/admin_console_2.png + :alt: A Library in Studio, with the right tray open. The Manage Access button is highlighted + +#. From this view, Library Admins and global admins can review the team, adjust + roles and confirm that access looks correct. See :ref:`Add users to + Libraries` for more detail. + + .. image:: /_images/release_notes/ulmo/admin_console_3.png + :alt: The Administrative Console, showing the Library Team Management for the specified library. You can see all users names, emails, and Roles, and take Edit action if you have permissions to edit roles + +Scope and Impact +**************** + +The scope of the Administrative Console in Ulmo is limited to Content Libraries, not +:ref:`Legacy Libraries `. + +For deployments that already use the Content Libraries, the main impact is that team +management for libraries moves into the Administrative Console. + +Out of Scope +************************ + +The following capabilities are not included in this first release of the +Administrative Console: + +* Managing access for courses, forums or other areas beyond Libraries. + +* Managing platform settings that are not related to access, such as general + configuration, integrations or content settings. + +Future Improvements +******************* + +After Ulmo, the Administrative Console is expected to evolve in several +directions: + +* Hosting additional Roles and Permissions scopes such as courses, forums or + other product areas. + +* Introducing richer administration views that span multiple scopes, for + example, seeing a user's access across libraries and courses in one place. + +* Adding other platform level configuration panels, for example user groups or + external integrations. + +This release focuses on delivering value for library access management while +preparing the architecture for future extensions. + +.. seealso:: + + :ref:`Ulmo Roles and Permissions` + + :ref:`Add users to Libraries` + + :ref:`Migrating Legacy Libraries` + + +**Maintenance chart** + ++--------------+-------------------------------+----------------+--------------------------------+ +| Review Date | Working Group Reviewer | Release |Test situation | ++--------------+-------------------------------+----------------+--------------------------------+ +| 2025-12-05 | Product WG | Ulmo | Pass | ++--------------+-------------------------------+----------------+--------------------------------+ \ No newline at end of file diff --git a/source/community/release_notes/ulmo/ulmo_marketing_notes.rst b/source/community/release_notes/ulmo/ulmo_marketing_notes.rst index b585234d4..207ee97c2 100644 --- a/source/community/release_notes/ulmo/ulmo_marketing_notes.rst +++ b/source/community/release_notes/ulmo/ulmo_marketing_notes.rst @@ -14,6 +14,12 @@ entire course sections once, then reuse them across courses, with improved sync workflows that visually show changes before you apply them - plus a migration tool to move Legacy Library content forward. +:ref:`Granular Roles and Permissions for Libraries `: +Assign Library Admin, Author, Contributor, or User roles with specific +permissions for viewing, editing, publishing, and managing content from a +central :ref:`Administrative Console ` that shows your entire team +at a glance. + :ref:`Ulmo LTI`: Set up LTI tool credentials once in a central store, then reuse them across all courses and blocks, eliminating repetitive data entry and reducing configuration errors across your entire instance. diff --git a/source/community/release_notes/ulmo/ulmo_rp.rst b/source/community/release_notes/ulmo/ulmo_rp.rst index 2fbf19a8b..8b998482b 100644 --- a/source/community/release_notes/ulmo/ulmo_rp.rst +++ b/source/community/release_notes/ulmo/ulmo_rp.rst @@ -1,6 +1,162 @@ .. _Ulmo Roles and Permissions: -Roles and Permissions in Ulmo Libraries +Roles and Permissions in Libraries ####################################### -Stub release note \ No newline at end of file +The Ulmo release introduces the first phase of the new roles and permissions +system for the Open edX platform. This first phase focuses on establishing a +shared roles & permissions service and connecting it to Libraries, so the same +model can be extended to other parts of the platform over time. + +.. image:: /_images/educator_how_tos/library_team_member_tab.png + :alt: The Team Members tab of the Admin Console, showing two team members in a table with the columns Name, Email, Role, and Actions + :width: 800 + +Any user who has a role in a library can open the library team manager in the +new Administrative Console from Studio. This view shows all members of the +library, the role each person holds, and the permissions associated with each +role. Library Admins and global site admins can use this view to assign or revoke +roles for that library, so team membership and role information live in a single +place. + +The goal of the Ulmo MVP is to introduce the new roles and permissions model to +Libraries with functional parity and a clearer model of roles, not to change how +authors create or reuse content. + +.. admonition:: Migrate Legacy Libraries + + :ref:`Legacy Libraries ` do not support the new Roles & Permissions functionality. + Upgrade Legacy Libraries in order to take advantage of this new feature! + To learn more view the :ref:`migration documentation `. + +.. _Ulmo Available RP: + +What's Available in Ulmo +************************ + +The Ulmo release includes: + +* Library scoped roles (:ref:`authz:Library Roles`): Library Admin, Library Author, + Library Contributor, and Library User, each mapped to a defined set of + permissions that control who can view, edit, publish or reuse library content, + and who can manage the library team. + + .. table:: Matrix of Content Library Roles and Permissions + :widths: auto + + ============================================= ================= ================ ===================== ============== + Permissions Library Admin Library Author Library Contributor Library User + ============================================= ================= ================ ===================== ============== + **Library** + --------------------------------------------- ----------------- ---------------- --------------------- -------------- + content_libraries.view_library ✅ ✅ ✅ ✅ + content_libraries.manage_library_tags ✅ ✅ ✅ ❌ + content_libraries.delete_library ✅ ❌ ❌ ❌ + **Content** + --------------------------------------------- ----------------- ---------------- --------------------- -------------- + content_libraries.edit_library_content ✅ ✅ ✅ ❌ + content_libraries.publish_library_content ✅ ✅ ❌ ❌ + content_libraries.reuse_library_content ✅ ✅ ✅ ✅ + **Team** + --------------------------------------------- ----------------- ---------------- --------------------- -------------- + content_libraries.view_library_team ✅ ✅ ✅ ✅ + content_libraries.manage_library_team ✅ ❌ ❌ ❌ + **Collections** + --------------------------------------------- ----------------- ---------------- --------------------- -------------- + content_libraries.create_library_collection ✅ ✅ ✅ ❌ + content_libraries.edit_library_collection ✅ ✅ ✅ ❌ + content_libraries.delete_library_collection ✅ ✅ ✅ ❌ + ============================================= ================= ================ ===================== ============== + +* A new "Library Contributor" role that matches most of the Library Author + capabilities for creating and editing content, managing tags and collections, + and reusing content, but cannot publish content. They support the authoring + process while leaving final publishing to Authors or Admins. + +* A library team management page in the :ref:`Administrative Console `. + Any user who has a role in a library can open this view to see all members, + their roles and the available role definitions. Library Admins and global + site admins use the same view to assign or revoke roles for that library, so team + membership and role information are managed from a single place. + +* An automatic migration that replicates existing library roles into the new system, + so current configurations are preserved without manual changes. + +Scope and Impact +**************** + +The new roles and permissions system applies only to Content Libraries, not +:ref:`Legacy Libraries `. It replaces the +previous library specific permissions logic with library-scoped roles surfaced +through the :ref:`Administrative Console `. + +The scope of this release is limited to: + +* Libraries created and managed in Studio + +* Library level roles and permissions managed through the Administrative Console + +* Migration of existing library role assignments into the new roles & permissions system + +The following areas are not affected in Ulmo: + +* Courses, course roles and course level permissions + +* Forums, cohorts and other runtime features + +* Any legacy library implementations that have not yet been :ref:`migrated to Content Libraries ` + +Migration of Existing Library Access +************************************ + +Ulmo includes an automated migration path for existing library access +configurations. + +During the upgrade to Ulmo, current library role assignments are mapped into the +new roles & permissions system automatically via the Ulmo upgrade. The intent is +to preserve who can access each library and what they can do, without requiring +manual configuration from platform operators. + +After the upgrade, operators and Library owners can review library teams in the +Administrative Console to confirm that roles and access levels look correct. For +most deployments that already use Libraries, no additional action should be +required beyond this validation step. + +Future improvements +******************* + +After Ulmo, the Roles and Permissions work is expected to evolve in several +directions: + +* Extending the same Roles & Permissions model beyond Libraries. Course + authoring is the next candidate, and future phases will expand the roles and + permissions pattern to Studio, forums, and other product areas. + +* Introducing more advanced administration features in the Administrative + Console, allowing for managing multiple scopes at once, listing users' roles + across scopes, and granting roles to multiple scopes in one action. + +* Exploring support for custom roles, based on feedback from operators who + manage large instances. + +These improvements will be scoped and tracked in future releases once the +Libraries integration is validated in production. Be sure to :ref:`Verawood planning`! + +.. seealso:: + + :ref:`Ulmo console` + + :ref:`Add users to Libraries` + + :ref:`authz:Roles Permissions Content Library` + + :ref:`Migrating Legacy Libraries` + + +**Maintenance chart** + ++--------------+-------------------------------+----------------+--------------------------------+ +| Review Date | Working Group Reviewer | Release |Test situation | ++--------------+-------------------------------+----------------+--------------------------------+ +| 2025-12-11 | Product WG | Ulmo | Pass | ++--------------+-------------------------------+----------------+--------------------------------+ \ No newline at end of file diff --git a/source/community/release_notes/verawood/stay_up_to_date.rst b/source/community/release_notes/verawood/stay_up_to_date.rst index ad709735d..2945b20d9 100644 --- a/source/community/release_notes/verawood/stay_up_to_date.rst +++ b/source/community/release_notes/verawood/stay_up_to_date.rst @@ -1,3 +1,5 @@ +.. _Verawood planning: + Stay Up To Date with Verawood ############################## @@ -22,5 +24,5 @@ Join asynchronously in the `#release-planning room in Slack ` +--------------+-------------------------------+----------------+--------------------------------+ | Review Date | Working Group Reviewer | Release |Test situation | +--------------+-------------------------------+----------------+--------------------------------+ -| 2025-04-15 | sarina | Sumac | Pass | +| 2025-04-15 | sarina | Ulmo | Pass | +--------------+-------------------------------+----------------+--------------------------------+ diff --git a/source/conf.py b/source/conf.py index caa53ca16..400d09b3f 100644 --- a/source/conf.py +++ b/source/conf.py @@ -145,6 +145,10 @@ f"https://docs.openedx.org/projects/edx-credentials/{rtd_language}/{rtd_version}", None, ), + "authz": ( + f"https://docs.openedx.org/projects/openedx-authz/{rtd_language}/{rtd_version}", + None, + ), } # Add any paths that contain templates here, relative to this directory. diff --git a/source/educators/how-tos/course_development/add_a_problem_bank_to_your_course.rst b/source/educators/how-tos/course_development/add_a_problem_bank_to_your_course.rst index 586caab10..6674e32a7 100644 --- a/source/educators/how-tos/course_development/add_a_problem_bank_to_your_course.rst +++ b/source/educators/how-tos/course_development/add_a_problem_bank_to_your_course.rst @@ -10,7 +10,8 @@ Add a Problem Bank to your course for randomization Content must be :ref:`published in a Library` before it can be used in a Course. - A course author must have at least Read-only permissions to reuse the content. + A course author must have at least the **Library User** role to reuse content, *or*, + the library should be published with the **Allow Public Read** permission. See :ref:`Add users to Libraries` for more detail. #. From the Unit Page in a course outline, click on the Problem Bank tile. A diff --git a/source/educators/how-tos/course_development/add_library_content_to_a_course.rst b/source/educators/how-tos/course_development/add_library_content_to_a_course.rst index 6218e1e77..212dd3a18 100644 --- a/source/educators/how-tos/course_development/add_library_content_to_a_course.rst +++ b/source/educators/how-tos/course_development/add_library_content_to_a_course.rst @@ -13,7 +13,8 @@ reused in as many courses as an author or course team wishes. Content must be :ref:`published in a Library` before it can be used in a Course. - A course author must have at least Read-only permissions to reuse the content. + A course author must have at least the **Library User** role to reuse content, + *or*, the library should be published with the **Allow Public Read** permission. See :ref:`Add users to Libraries` for more detail. #. From the Unit page in a coures outline, click on the Library Content tile. diff --git a/source/educators/how-tos/course_development/add_users_to_libraries.rst b/source/educators/how-tos/course_development/add_users_to_libraries.rst index c0e45e8ae..b79125284 100644 --- a/source/educators/how-tos/course_development/add_users_to_libraries.rst +++ b/source/educators/how-tos/course_development/add_users_to_libraries.rst @@ -1,77 +1,221 @@ .. _Add users to Libraries: -Add users to Libraries -###################### +Manage Library User Access +########################## .. tags:: educator, how-to -.. note:: +Access to a library team starts from the library home page in Studio and is +managed in the library team manager in the :ref:`Administrative Console `. This article explains the library roles and how to add and manage +members of a library team. + +Any change made in the library team manager applies to this library only. It +does not change what that user can do in other libraries or in courses. + +.. contents:: + :local: + :depth: 2 + +Library Roles +************* + +Libraries use roles to control what each team member can do. See +:ref:`authz:Library Roles` for more detail on the following library roles: + +* Library User +* Library Contributor +* Library Author +* Library Admin + +Library Team Management +*********************** + +On the Team Management panel, there are three tabs at the top of the page: + +* Team Members +* Roles +* Permissions + +Any user who has any of the above Library Roles can view these tabs. + +Team Members Tab +================ + +On the Team Members tab, users can see who has access to the Library and which +roles they have. The list of team members is searchable by username or email, +and can be filtered by role, making it easy to understand who else can edit, +publish or manage access. + +.. image:: /_images/educator_how_tos/library_team_member_tab.png + :alt: The Team Members tab of the Admin Console, showing two team members in a table with the columns Name, Email, Role, and Actions + :width: 800 + :align: center + +Roles Tab +========= + +The :ref:`authz:Library Roles` tab has a description of each Library role and +the set of permissions each role includes, helping users understand at a glance what +each role covers when granting permissions. + +.. image:: /_images/educator_how_tos/library_team_roles_tab.png + :alt: The Roles tab shows all 4 Library roles and what permissions each role grants + :align: center + +Permissions Tab +=============== + +The Permissions tab has a :ref:`authz:Library RP Summary Table` that describes +which permissions are assigned to each role. Every permission in the table +includes a short explanation, enabling users to see what role allows which +actions, and compare roles side by side before they change a user's access. + +.. image:: /_images/educator_how_tos/library_permissions_tab.png + :alt: The Permissions tab shows a table of permissions, with a ✅ for permissions a given role allows and a ❌ for permissions not available for that role. + :align: center + + +Manage Access for Library Team Members +************************************** + +Only Library Admins and global site admins can add or remove team members or change +their roles. All actions in this section affect access to one library only. + +To begin, follow these steps to open the Team Management panel: - Only admins on a given library can manage user permissions for that library. +#. From the home page of the library in Studio, click the :guilabel:`ⓘ Library Info` button on + the top right of the page to open the right sidebar. -User access permissions in Libraries can be managed via the home page of your library. + .. image:: /_images/educator_how_tos/library_info_button.png + :alt: The Library Info button appears below the header, on the top-right of the page. -Library Permission Levels -************************** +#. In the right sidebar, click the :guilabel:`Manage Access` button. This opens the team + management panel in a new browser tab in the Administrative Console, on the + Team Members tab. -Read-only ---------- + .. image:: /_images/educator_how_tos/library_manage_access_button.png + :alt: The "Manage Access" button appears in the right sidebar, below the Published status and Organization information. + :scale: 40 + :align: center -Read-only users can view the library and use its content in their courses. +View Team Members +================= -Team members who have Read-only permissions on the content in a library -cannot create new content or edit content. Read-only includes the ability to -search in libraries, and apply filters and sorts. +Library administrators can audit a user's access to that library via the Team Management panel: -Author ------- +#. Use search or filters to find a user to update and select Edit in the Action + column to open the user detail view. -Can view library content, create new library content, edit library content, and -use library content in courses. + .. image:: /_images/educator_how_tos/library_team_roles_edit.png + :alt: The "Edit" link appears in the rightmost column of the User table for each row that contains a user. -They can also create collections, add and remove content from collections, as -well as add and remove tags from content and from collections. +#. Once "Edit" has been clicked, a new screen is shown that allows admins to + view what roles a user holds and edit their access to the library. -Authors can also see who else is on the team for any library that they are an -author on. Library authors are very similar roles to course staff on the course -side. + .. image:: /_images/educator_how_tos/library_team_roles_edit_user_screen.png + :alt: The screen for one single user, showing their role (Library Admin) and a table of which permissions that role grants them. -Admin ------ -Admins have all the permissions of Authors, but can also add and remove Library Team -members. Only admins can delete entire libraries. Entire libraries can also be -toggled to read-only, and only admins have the permission to switch that toggle. +Add a New Team Member +======================== -In terms of intersections with already-existing roles, if you have global admin -access on the platform, you also have library admin permissions on all libraries. +Library administrators can add a new team member via the Team Management panel: -Granting Permissions to a Library -********************************** +#. In the team management panel, click the :guilabel:`+ Add New Team Member` button in the + upper right corner to open the Add User pop-up. -#. As an admin, from the homepage of the library, click on the - :guilabel:`Library Info`` button on the top right of the page to open the - right sidebar: + .. image:: /_images/educator_how_tos/library_add_team_member_button.png + :alt: The Add New Team Member button appears at the top-right of the Library Team Management page - .. image:: /_images/educator_how_tos/library_user_permissions_info_button.png +#. In the pop-up window, enter one or more email addresses or usernames of the + people you want to grant access to, separated by commas. Select the desired + role to assign, for example Library Admin, Library Author, Library + Contributor, or Library User. -#. Click :guilabel:`Manage Access` button in the right sidebar: + .. image:: /_images/educator_how_tos/library_team_roles_assign.png + :alt: The pop-up modal has a text box for entering users by username or email, and a dropdown menu that shows the available roles to be assigned. - .. image:: /_images/educator_how_tos/library_user_permissions_manage_access.png +#. Save the changes. After saving, the new user(s) are listed in the team table with their new role. -#. In the modal that appears, click the :guilabel:`+ New Team Member` button: + .. image:: /_images/educator_how_tos/library_team_roles_assign_save.png + :alt: The "Save" button appears in the bottom right of the pop-up modal. - .. image:: /_images/educator_how_tos/library_user_permissions_new_member.png +Edit User Roles +=============== -#. Enter the email address of the person you wish to grant access to: +Library Admins and global site admins can update roles for users who are already +on the library team. To begin, follow these steps to open the Team Management +panel: - .. image:: /_images/educator_how_tos/library_user_permissions_new_member_email.png +#. From the home page of the library in Studio, click the :guilabel:`ⓘ Library Info` button on + the top right of the page to open the right sidebar. -#. By default, the new user is granted Read-only permissions. You can use the - buttons below the user's information to promote them to Author or Admin, or - use the trash button icon to remove the user's access: + .. image:: /_images/educator_how_tos/library_info_button.png + :alt: The Library Info button appears below the header, on the top-right of the page. - .. image:: /_images/educator_how_tos/library_user_permissions_promote_delete_member.png +#. In the right sidebar, click the :guilabel:`Manage Access` button. This opens the team + management panel in a new browser tab in the Administrative Console, on the + Team Members tab. + + .. image:: /_images/educator_how_tos/library_manage_access_button.png + :alt: The "Manage Access" button appears in the right sidebar, below the Published status and Organization information. + :scale: 40 + :align: center + +Add a Role to a Team Member +---------------------------- + +#. Navigate to the "Team Members" tab of the Team Management panel. Use search + or filters to find the user to update and select "Edit" in the Action column + to open the user detail view for the user. + + .. image:: /_images/educator_how_tos/library_team_roles_edit.png + :alt: The "Edit" link appears in the rightmost column of the User table for each row that contains a user. + +#. In the user detail view, select :guilabel:`Add New Role` in the upper right corner. + + .. image:: /_images/educator_how_tos/library_team_add_new_role.png + :alt: The "Add New Role" button appears in the top right corner. + + +#. In the Add New Role pop-up, open the Roles dropdown and select the new role to add. + + .. image:: /_images/educator_how_tos/library_team_roles_new_role_popup.png + :alt: The pop-up dialog has a dropdown for selecting a role, and both a Cancel and a Save button in the bottom right. + +#. Select Save. + +The new role is added for this user in this library and appears in their list of roles. + +Remove a Role from a Team Member +-------------------------------- + +#. Navigate to the "Team Members" tab of the Team Management panel. Use search + or filters to find the user to update and select "Edit" in the Action column + to open the user detail view for the user. + + .. image:: /_images/educator_how_tos/library_team_roles_edit.png + :alt: The "Edit" link appears in the rightmost column of the User table for each row that contains a user. + +#. In the user detail view, find the role to remove and select the delete icon for that role. + + .. image:: /_images/educator_how_tos/library_team_roles_delete.png + :alt: The delete (trash can) icon appears on the top right of each "card", where a card represents one role a user holds. + + +#. In the Remove role confirmation pop-up, review the message and select Remove + to confirm, or Cancel to retain the user's current level of access. + + .. image:: /_images/educator_how_tos/library_team_roles_remove_role_popup.png + :alt: The pop-up dialog, in this example, explains that removing the role for the user will also remove all their Library access as it is the only role the user has. + +.. note:: + + After "Remove" is selected, that role is removed for this user in this library. If the + user has no roles left for this library, they will no longer have access and + will stop appearing in the team list. Their roles in other libraries or courses + are not affected. .. seealso:: @@ -103,5 +247,7 @@ Granting Permissions to a Library +--------------+-------------------------------+----------------+--------------------------------+ | Review Date | Working Group Reviewer | Release |Test situation | +--------------+-------------------------------+----------------+--------------------------------+ +| 2025-12-11 | Product WG | Ulmo | Pass | ++--------------+-------------------------------+----------------+--------------------------------+ | 07/02/2025 | Leira (Curricu.me) | Sumac | Pass | +--------------+-------------------------------+----------------+--------------------------------+ diff --git a/source/educators/how-tos/course_development/build_a_collection_in_a_library.rst b/source/educators/how-tos/course_development/build_a_collection_in_a_library.rst index 2cb05a18e..1b692bcd0 100644 --- a/source/educators/how-tos/course_development/build_a_collection_in_a_library.rst +++ b/source/educators/how-tos/course_development/build_a_collection_in_a_library.rst @@ -7,8 +7,8 @@ Build a Collection in a Library .. note:: - Users must have "Author" or "Admin" permissions on a library to build collections. - See :ref:`Add users to Libraries` for more detail. + Users must have **Library Author**, **Library Contributor**, or **Library Admin** permissions on a library to edit content. + See :ref:`Add users to Libraries` for more details. Collections function as subsets of content within a Library, and are one of the primary ways to manage and organize large sets of content. For example, a diff --git a/source/educators/how-tos/course_development/create_and_edit_content_in_a_library.rst b/source/educators/how-tos/course_development/create_and_edit_content_in_a_library.rst index 6a8de7525..18989e933 100644 --- a/source/educators/how-tos/course_development/create_and_edit_content_in_a_library.rst +++ b/source/educators/how-tos/course_development/create_and_edit_content_in_a_library.rst @@ -7,8 +7,8 @@ Create and edit content in a Library .. note:: - Users must have "Author" or "Admin" permissions on a library to edit content. - See :ref:`Add users to Libraries` for more detail. + Users must have **Library Author**, **Library Contributor**, or **Library Admin** permissions on a library to edit content. + See :ref:`Add users to Libraries` for more details. Libraries contain the same rich editing interfaces that are available in courses. Content can be edited and updated at any time. diff --git a/source/educators/how-tos/course_development/create_and_edit_units_in_a_library.rst b/source/educators/how-tos/course_development/create_and_edit_units_in_a_library.rst index 08380ed93..e01e95733 100644 --- a/source/educators/how-tos/course_development/create_and_edit_units_in_a_library.rst +++ b/source/educators/how-tos/course_development/create_and_edit_units_in_a_library.rst @@ -7,8 +7,8 @@ Create and edit units in a Library .. note:: - Users must have "Author" or "Admin" permissions on a library to edit content. - See :ref:`Add users to Libraries` for more detail. + Users must have **Library Author**, **Library Contributor**, or **Library Admin** permissions on a library to edit content. + See :ref:`Add users to Libraries` for more details. Libraries contain the same rich editing interfaces that are available in courses. Units can be edited and updated at any time. diff --git a/source/educators/how-tos/course_development/publish_library_content.rst b/source/educators/how-tos/course_development/publish_library_content.rst index 04f1cd8d4..bb08d077d 100644 --- a/source/educators/how-tos/course_development/publish_library_content.rst +++ b/source/educators/how-tos/course_development/publish_library_content.rst @@ -7,8 +7,8 @@ Publish Library content .. note:: - Users must have "Author" or "Admin" permissions on a library to publish content. - See :ref:`Add users to Libraries` for more detail. + Users must have **Library Author**, **Library Contributor**, or **Library Admin** permissions on a library to edit content. + See :ref:`Add users to Libraries` for more details. Libraries now support the ability to edit in draft mode, enabling more flexible content creation workflows.