-
Notifications
You must be signed in to change notification settings - Fork 3.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: allow_to_create_new_org checks org autocreate [FC-0076] #36094
fix: allow_to_create_new_org checks org autocreate [FC-0076] #36094
Conversation
Updates the StudioHome API's allow_to_create_new_org to require both organization-creation permissions and ORGANIZATION_AUTOCREATE to be enabled.
Thanks for the pull request, @pomegranited! This repository is currently maintained by @openedx/wg-maintenance-edx-platform. Once you've gone through the following steps feel free to tag them in a comment and let them know that your changes are ready for engineering review.
|
'allow_to_create_new_org': settings.FEATURES.get('ENABLE_CREATOR_GROUP', True) and request.user.is_staff, | ||
# 'allow_to_create_new_org' is actually about auto-creating organizations | ||
# (e.g. when creating a course or library), so we add an additional test. | ||
'allow_to_create_new_org': ( | ||
home_context['can_create_organizations'] and | ||
org_api.is_autocreate_enabled() | ||
), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For reference, the can_create_organizations
value is set here:
edx-platform/cms/djangoapps/contentstore/views/course.py
Lines 1794 to 1798 in c5fabd5
def user_can_create_organizations(user): | |
""" | |
Returns True if the user can create organizations. | |
""" | |
return user.is_staff or not settings.FEATURES.get('ENABLE_CREATOR_GROUP', False) |
which is pretty different from the original allow_to_create_new_org
. But it didn't make sense to me that we'd use a different default value for settings.FEATURES['ENABLE_CREATOR_GROUP']
AND require the user to be staff here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@pomegranited This seems reasonable but the logic while creating courses seems different. If the setting to create new org is set to False
, the API only allows user/staff to create courses in organizations they are allowed in:
- https://github.com/open-craft/frontend-app-course-authoring/blob/a25a09e053ea0e0d153bfd28280072ebe6e5475f/src/generic/create-or-rerun-course/hooks.jsx#L35
- https://github.com/open-craft/edx-platform/blob/1ac6e02bb8a16ac76bc0f2e4d25626e4e0734c01/cms/djangoapps/contentstore/utils.py#L1582
We also have get_allowed_organizations_for_libraries for libraries, so probably we need to do the same here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch @navinkarkera ! see f1f40e0
Also adds the list of "allowed organizations for libraries" to the Studio Home API, so it can be used by the Authoring MFE.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good! @pomegranited
- I tested this: (Tried creating org via new lib page and course page)
- I read through the code
- I checked for accessibility issues
- Includes documentation
2U Release Notice: This PR has been deployed to the edX staging environment in preparation for a release to production. |
2U Release Notice: This PR has been deployed to the edX production environment. |
1 similar comment
2U Release Notice: This PR has been deployed to the edX production environment. |
Description
Updates the StudioHome API's allow_to_create_new_org to require both organization-creation permissions and
settings.ORGANIZATIONS_AUTOCREATE
to be enabled.Previously, users with staff permission were allowed to attempt organization autocreation when creating a course or library using the Authoring MFE, but if
ORGANIZATIONS_AUTOCREATE
was disabled, they would get an error from the creation API.ORGANIZATIONS_AUTOCREATE
is enabled by default, but edx.org disables it.Useful information to include:
Supporting information
Part of: openedx/frontend-app-authoring#1577
Testing instructions
See Authoring MFE PR.
Deadline
None