From baf7deec53f30348a602bb8bc6dffc886952f396 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20M=C3=A9ndez?= Date: Thu, 5 Feb 2026 16:57:53 -0600 Subject: [PATCH 1/3] feat: Add Waffle flag for AuthZ for Course Authoring --- cms/djangoapps/contentstore/toggles.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 5462a28bae4b..5d8526cdd782 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -542,3 +542,14 @@ def enable_course_optimizer_check_prev_run_links(course_key): Returns a boolean if previous run course optimizer feature is enabled for the given course. """ return ENABLE_COURSE_OPTIMIZER_CHECK_PREV_RUN_LINKS.is_enabled(course_key) + + +# .. toggle_name: authz.enable_course_authoring +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: This toggle will enable the new openedx-authz authorization engine for course authoring. +# .. toggle_warning: Enabling this toggle triggers a data migration to move role assignations between the legacy and the openedx-authz system. +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2026-02-05 +# .. toggle_tickets: https://github.com/openedx/openedx-platform/issues/37927 +AUTHZ_COURSE_AUTHORING_FLAG = CourseWaffleFlag('authz.enable_course_authoring', __name__) From c7aaa1f75db48c2d42c4b458a2e3ad4c8f288f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20M=C3=A9ndez?= Date: Thu, 5 Feb 2026 17:15:35 -0600 Subject: [PATCH 2/3] squash!: Add target removal date --- cms/djangoapps/contentstore/toggles.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index 5d8526cdd782..f9baeb73656c 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -548,8 +548,9 @@ def enable_course_optimizer_check_prev_run_links(course_key): # .. toggle_implementation: CourseWaffleFlag # .. toggle_default: False # .. toggle_description: This toggle will enable the new openedx-authz authorization engine for course authoring. -# .. toggle_warning: Enabling this toggle triggers a data migration to move role assignations between the legacy and the openedx-authz system. +# .. toggle_warning: Enabling this toggle will trigger a data migration to move role assignations between the legacy and the openedx-authz system. # .. toggle_use_cases: temporary # .. toggle_creation_date: 2026-02-05 +# .. toggle_target_removal_date: 2027-06-09 # .. toggle_tickets: https://github.com/openedx/openedx-platform/issues/37927 AUTHZ_COURSE_AUTHORING_FLAG = CourseWaffleFlag('authz.enable_course_authoring', __name__) From ad2e42ba06e507f932714b1ababdc345876ad8f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20M=C3=A9ndez?= Date: Fri, 6 Feb 2026 16:35:15 -0600 Subject: [PATCH 3/3] squash!: Change flag to core toggles --- cms/djangoapps/contentstore/toggles.py | 12 ------------ openedx/core/toggles.py | 13 +++++++++++++ 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/cms/djangoapps/contentstore/toggles.py b/cms/djangoapps/contentstore/toggles.py index f9baeb73656c..5462a28bae4b 100644 --- a/cms/djangoapps/contentstore/toggles.py +++ b/cms/djangoapps/contentstore/toggles.py @@ -542,15 +542,3 @@ def enable_course_optimizer_check_prev_run_links(course_key): Returns a boolean if previous run course optimizer feature is enabled for the given course. """ return ENABLE_COURSE_OPTIMIZER_CHECK_PREV_RUN_LINKS.is_enabled(course_key) - - -# .. toggle_name: authz.enable_course_authoring -# .. toggle_implementation: CourseWaffleFlag -# .. toggle_default: False -# .. toggle_description: This toggle will enable the new openedx-authz authorization engine for course authoring. -# .. toggle_warning: Enabling this toggle will trigger a data migration to move role assignations between the legacy and the openedx-authz system. -# .. toggle_use_cases: temporary -# .. toggle_creation_date: 2026-02-05 -# .. toggle_target_removal_date: 2027-06-09 -# .. toggle_tickets: https://github.com/openedx/openedx-platform/issues/37927 -AUTHZ_COURSE_AUTHORING_FLAG = CourseWaffleFlag('authz.enable_course_authoring', __name__) diff --git a/openedx/core/toggles.py b/openedx/core/toggles.py index b4f704dca2e1..628fc91b1c94 100644 --- a/openedx/core/toggles.py +++ b/openedx/core/toggles.py @@ -3,6 +3,8 @@ for them. Generally speaking, they should be added to the most appropriate app or repo. """ from edx_toggles.toggles import SettingToggle +from openedx.core.djangoapps.waffle_utils import CourseWaffleFlag + # .. toggle_name: ENTRANCE_EXAMS # .. toggle_implementation: SettingToggle @@ -15,3 +17,14 @@ ENTRANCE_EXAMS = SettingToggle( "ENTRANCE_EXAMS", default=False, module_name=__name__ ) + +# .. toggle_name: authz.enable_course_authoring +# .. toggle_implementation: CourseWaffleFlag +# .. toggle_default: False +# .. toggle_description: This toggle will enable the new openedx-authz authorization engine for course authoring. +# .. toggle_warning: Enabling this toggle will trigger a data migration to move role assignations between the legacy and the openedx-authz system. +# .. toggle_use_cases: temporary +# .. toggle_creation_date: 2026-02-05 +# .. toggle_target_removal_date: 2027-06-09 +# .. toggle_tickets: https://github.com/openedx/openedx-platform/issues/37927 +AUTHZ_COURSE_AUTHORING_FLAG = CourseWaffleFlag('authz.enable_course_authoring', __name__)