-
Notifications
You must be signed in to change notification settings - Fork 4k
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. |
I'm from 2u-TnL team. Recently, we noticed that we are not able to create Course (being staff users) because we are not getting organizations in CreateCourseForm. In my devstack, I'm able to do so and everything is working fine. I've gone through this PR and found that Is there any reason that this flag is False for edx.org? |
…#36094) Updates the StudioHome API's allow_to_create_new_org to require both organization-creation permissions and ORGANIZATION_AUTOCREATE to be enabled. It also adds the list of "allowed organizations for libraries" to the Studio Home API so that the Authoring MFE can use it. (cherry picked from commit b96a3bf)
Hi @hinakhadim , my apologies for a delayed reply and for the disruption this change has caused your team.
Yep -- I got this information from @kdmccormick on the original issue: openedx/frontend-app-authoring#1577 (and there's more background about it in this ADR). But given that context, I think it's important to keep
Ok, this seems to be the real issue -- you should see the list of organizations that you're allowed to create courses for in that list. But from digging in today, I think this PR conspired with this line in the Course Authoring MFE -- so instead of seeing the full list of organizations, now you only see the "allowedOrganizations" list. But that allowed_organizations list is empty because So I think we need to fix the Course Authoring MFE like this: openedx/frontend-app-authoring#1689 |
@pomegranited Thank you for your response and for identifying the issue correctly. For our stage instance, Since Furthermore, I am sharing a screenshot of the Stage Studio API of my user for further clarity. You can see ![]() |
…#36288) Updates the StudioHome API's allow_to_create_new_org to require both organization-creation permissions and ORGANIZATION_AUTOCREATE to be enabled. It also adds the list of "allowed organizations for libraries" to the Studio Home API so that the Authoring MFE can use it. (cherry picked from commit b96a3bf)
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