Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/decisions/0017-static-authorization-schema.rst
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,15 @@ For example:
name: view_course
display_name: View course
description: View course configuration and content.
category: course_content
category_id: course_content
scopes:
- course-v1
icon: Visibility
- namespace: courses
name: delete_course
display_name: Delete course
description: Delete a course.
category: course_content
category_id: course_content
scopes:
- course-v1
icon: Delete
Expand Down Expand Up @@ -87,7 +87,7 @@ Version 1 does not define display order for roles, permissions, or categories. C
- courses.view_course

role_extensions:
- role: course_admin
- role_id: course_admin
add_permissions:
- courses.delete_course

Expand Down
2 changes: 1 addition & 1 deletion docs/decisions/0019-authorization-schema-discovery.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Site operators can contribute a schema through a Python Tutor plugin that uses t
priority: 200

role_extensions:
- role: course_editor
- role_id: course_editor
add_permissions:
- courses.export_course
""",
Expand Down
10 changes: 5 additions & 5 deletions docs/decisions/0023-extend-static-roles.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ Decision
1. Role extension fields
========================

A ``role_extensions`` entry identifies an existing static role with ``role`` and changes only the fields included in the entry. The :ref:`Authorization Schema Reference` describes these fields and includes complete examples for applications and Tutor configuration. An entry may use:
A ``role_extensions`` entry identifies an existing static role with ``role_id`` and changes only the fields included in the entry. The :ref:`Authorization Schema Reference` describes these fields and includes complete examples for applications and Tutor configuration. An entry may use:

* ``add_permissions`` to add complete permission IDs;
* ``remove_permissions`` to remove complete permission IDs;
Expand All @@ -34,14 +34,14 @@ For example:
priority: 200

role_extensions:
- role: course_editor
- role_id: course_editor
add_permissions:
- courses.export_course
remove_permissions:
- courses.manage_tags
display_name: Course author
description: Creates and exports course content.
- role: course_auditor
- role_id: course_auditor
hidden: true

Fields that are not present keep their current value. An extension cannot change the role ID or replace its complete definition.
Expand Down Expand Up @@ -76,14 +76,14 @@ First, the operator runs ``tutor plugins printroot`` to find the local plugin di
priority: 200

role_extensions:
- role: course_editor
- role_id: course_editor
add_permissions:
- courses.export_course
remove_permissions:
- courses.manage_tags
display_name: Course author
description: Creates and exports course content for this site.
- role: course_auditor
- role_id: course_auditor
hidden: true
""",
))
Expand Down
4 changes: 2 additions & 2 deletions docs/references/authorization-schema-json.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ Permission fields
.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/permission/properties/description
:lift_description:

.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/permission/properties/category
.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/permission/properties/category_id
:lift_description:

.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/permission/properties/scopes
Expand Down Expand Up @@ -96,7 +96,7 @@ Role fields
Role extension fields
*********************

.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/role_extension/properties/role
.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/role_extension/properties/role_id
:lift_description:

.. jsonschema:: ../../src/openedx_authz/schema/authz-schema-v1.json#/$defs/role_extension/properties/add_permissions
Expand Down
24 changes: 12 additions & 12 deletions docs/references/authorization-schema.rst
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ The following file defines one category, two permissions, one role, and an exten
name: view_course
display_name: View course
description: View course configuration and content.
category: course_content
category_id: course_content
scopes:
- course-v1
icon: Visibility
Expand All @@ -53,7 +53,7 @@ The following file defines one category, two permissions, one role, and an exten
name: view_course_updates
display_name: View course updates
description: View course update posts.
category: course_content
category_id: course_content
scopes:
- course-v1
icon: Visibility
Expand All @@ -69,7 +69,7 @@ The following file defines one category, two permissions, one role, and an exten
- courses.view_course_updates

role_extensions:
- role: course_editor
- role_id: course_editor
add_permissions:
- courses.export_course

Expand Down Expand Up @@ -152,7 +152,7 @@ A permission contains these fields:
``description``
A complete source-language sentence describing the access controlled by the permission.

``category``
``category_id``
The complete ID of a category defined in the combined schema.

``scopes``
Expand All @@ -170,7 +170,7 @@ The complete permission ID joins ``namespace`` and ``name`` with a period. For e
name: manage_library_tags
display_name: Manage library tags
description: Add, edit, and remove tags in a content library.
category: library_management
category_id: library_management
scopes:
- lib

Expand Down Expand Up @@ -219,14 +219,14 @@ For example:
- content_libraries.view_library_team
icon: Visibility

The Casbin form ``role^library_reviewer`` is an internal value and is not valid as ``roles.id`` or in a ``role_extensions.role`` reference.
The Casbin form ``role^library_reviewer`` is an internal value and is not valid as ``roles.id`` or in a ``role_extensions.role_id`` reference.

Role extensions
***************

A role extension contains ``role`` and at least one field to change:
A role extension contains ``role_id`` and at least one field to change:

``role``
``role_id``
The complete ID of an existing static role.

``add_permissions``
Expand All @@ -249,15 +249,15 @@ For example, a deployment can allow course editors to export courses, remove the
priority: 200

role_extensions:
- role: course_editor
- role_id: course_editor
add_permissions:
- courses.export_course
remove_permissions:
- courses.manage_tags
display_name: Course author
description: Creates and exports course content.

- role: course_auditor
- role_id: course_auditor
hidden: true

An extension fails validation when its target role or a referenced permission does not exist. Adding a permission already assigned to the role or removing one the role does not have produces a warning and leaves the result unchanged.
Expand Down Expand Up @@ -320,15 +320,15 @@ A site operator can provide an authz schema through a Python Tutor plugin that u
priority: 200

role_extensions:
- role: course_editor
- role_id: course_editor
add_permissions:
- courses.export_course
remove_permissions:
- courses.manage_tags
display_name: Course author
description: Creates and exports course content.

- role: course_auditor
- role_id: course_auditor
hidden: true
""",
))
Expand Down
Loading
Loading