Skip to content
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: enroll users when added to a course team role #32561

Merged
merged 1 commit into from
Apr 26, 2024
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
2 changes: 1 addition & 1 deletion cms/templates/manage_users.html
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ <h3 class="title-3">${_("Course Team Roles")}</h3>
<p>${_("Course team members with the Staff role are course co-authors. They have full writing and editing privileges on all course content.")}</p>
## Note that the "Admin" role below is identified as "Instructor" in the Django admin panel.
<p>${_("Admins are course team members who can add and remove other course team members.")}</p>
<p>${_("All course team members can access content in Studio, the LMS, and Insights, but are not automatically enrolled in the course.")}</p>
<p>${_("All course team members can access content in Studio, the LMS, and Insights, and they are automatically enrolled in the course.")}</p>
</div>

% if show_transfer_ownership_hint:
Expand Down
3 changes: 3 additions & 0 deletions lms/djangoapps/instructor/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2253,13 +2253,16 @@ def test_modify_access_bad_role(self):
assert response.status_code == 400

def test_modify_access_allow(self):
assert CourseEnrollment.is_enrolled(self.other_user, self.course.id) is False
url = reverse('modify_access', kwargs={'course_id': str(self.course.id)})
response = self.client.post(url, {
'unique_student_identifier': self.other_user.email,
'rolename': 'staff',
'action': 'allow',
})
assert response.status_code == 200
# User should be auto enrolled in the course
assert CourseEnrollment.is_enrolled(self.other_user, self.course.id)

def test_modify_access_allow_with_uname(self):
url = reverse('modify_access', kwargs={'course_id': str(self.course.id)})
Expand Down
7 changes: 5 additions & 2 deletions lms/djangoapps/instructor/views/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -1005,11 +1005,12 @@ def modify_access(request, course_id):
course = get_course_with_access(
request.user, 'instructor', course_id, depth=None
)
unique_student_identifier = request.POST.get('unique_student_identifier')
try:
user = get_student_from_identifier(request.POST.get('unique_student_identifier'))
user = get_student_from_identifier(unique_student_identifier)
except User.DoesNotExist:
response_payload = {
'unique_student_identifier': request.POST.get('unique_student_identifier'),
'unique_student_identifier': unique_student_identifier,
'userDoesNotExist': True,
}
return JsonResponse(response_payload)
Expand Down Expand Up @@ -1044,6 +1045,8 @@ def modify_access(request, course_id):

if action == 'allow':
allow_access(course, user, rolename)
if not is_user_enrolled_in_course(user, course_id):
CourseEnrollment.enroll(user, course_id)
elif action == 'revoke':
revoke_access(course, user, rolename)
else:
Expand Down
4 changes: 2 additions & 2 deletions lms/static/js/fixtures/instructor_dashboard/membership.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ <h3 class="hd hd-3">Course Team Management</h3>
</div>

<div class="auth-list-container active" data-rolename="staff" data-display-name="Staff" data-info-text="
Course team members with the Staff role help you manage your course. Staff can enroll and unenroll learners, as well as modify their grades and access all course data. Staff also have access to your course in Studio and Insights. You can only give course team roles to enrolled users."
Course team members with the Staff role help you manage your course. Staff can enroll and unenroll learners, as well as modify their grades and access all course data. Staff also have access to your course in Studio and Insights. Any users not yet enrolled in the course will be automatically enrolled when added as Staff."
data-list-endpoint="/courses/course-v1:edx+ed202+2017_T3/instructor/api/list_course_role_members"
data-modify-endpoint="/courses/course-v1:edx+ed202+2017_T3/instructor/api/modify_access"
data-add-button-label="Add Staff">
Expand All @@ -33,7 +33,7 @@ <h3 class="hd hd-3">Course Team Management</h3>
<div class="info">
Course team members with the Staff role help you manage your course. Staff can enroll and unenroll learners,
as well as modify their grades and access all course data. Staff also have access to your course in Studio and
Insights. You can only give course team roles to enrolled users.
Insights. Any users not yet enrolled in the course will be automatically enrolled when added as Staff.
</div>
<div class="member-list">
<table>
Expand Down
2 changes: 1 addition & 1 deletion lms/static/js/instructor_dashboard/membership.js
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ such that the value can be defined later than this assignment (file load order).
text: identifier
}));
}
}
}
return displayResponse.$task_response.append($taskResSection);
};
if (errors.length === 0 && successes.length === 0 && noUsers.length === 0) {
Expand Down
16 changes: 10 additions & 6 deletions lms/templates/instructor/instructor_dashboard_2/membership.html
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,8 @@ <h3 class="hd hd-3">${_("Course Team Management")}</h3>
${_("Course team members with the Staff role help you manage your course. "
mariajgrimaldi marked this conversation as resolved.
Show resolved Hide resolved
"Staff can enroll and unenroll learners, as well as modify their grades and "
"access all course data. Staff also have access to your course in Studio and "
"Insights. You can only give course team roles to enrolled users.")}"
"Insights. Any users not yet enrolled in the course will be automatically "
"enrolled when added as Staff.")}"
data-list-endpoint="${ section_data['list_course_role_members_url'] }"
data-modify-endpoint="${ section_data['modify_access_url'] }"
data-add-button-label="${_("Add Staff")}"
Expand All @@ -185,7 +186,8 @@ <h3 class="hd hd-3">${_("Course Team Management")}</h3>
${_("Course team members with the Limited Staff role help you manage your course. "
"Limited Staff can enroll and unenroll learners, as well as modify their grades and "
"access all course data. Limited Staff don't have access to your course in Studio. "
"You can only give course team roles to enrolled users.")}"
"Any users not yet enrolled in the course will be automatically enrolled when added "
"as Limited Staff.")}"
data-list-endpoint="${ section_data['list_course_role_members_url'] }"
data-modify-endpoint="${ section_data['modify_access_url'] }"
data-add-button-label="${_("Add Limited Staff")}"
Expand All @@ -199,8 +201,8 @@ <h3 class="hd hd-3">${_("Course Team Management")}</h3>
${_("Course team members with the Admin role help you manage your course. "
"They can do all of the tasks that Staff can do, and can also add and "
"remove the Staff and Admin roles, discussion moderation roles, and the "
"beta tester role to manage course team membership. You can only give "
"course team roles to enrolled users.")}"
"beta tester role to manage course team membership. Any users not yet "
"enrolled in the course will be automatically enrolled when added as Admin.")}"
data-list-endpoint="${ section_data['list_course_role_members_url'] }"
data-modify-endpoint="${ section_data['modify_access_url'] }"
data-add-button-label="${_("Add Admin")}"
Expand All @@ -213,7 +215,8 @@ <h3 class="hd hd-3">${_("Course Team Management")}</h3>
data-info-text="
${_("Beta Testers can see course content before other learners. "
"They can make sure that the content works, but have no additional "
"privileges. You can only give course team roles to enrolled users.")}"
"privileges. Any users not yet enrolled in the course will be automatically "
"enrolled when added as Beta Tester.")}"
data-list-endpoint="${ section_data['list_course_role_members_url'] }"
data-modify-endpoint="${ section_data['modify_access_url'] }"
data-add-button-label="${_("Add Beta Tester")}"
Expand All @@ -237,7 +240,8 @@ <h3 class="hd hd-3">${_("Course Team Management")}</h3>
data-rolename="data_researcher"
data-display-name="${_("Course Data Researcher")}"
data-info-text="
${_("Course Data Researchers can access the data download tab.")}"
${_("Course Data Researchers can access the data download tab. Any users not yet "
"enrolled in the course will be automatically enrolled when added as Course Data Researcher.")}"
data-list-endpoint="${ section_data['list_course_role_members_url'] }"
data-modify-endpoint="${ section_data['modify_access_url'] }"
data-add-button-label="${_("Add Course Data Researcher")}"
Expand Down
Loading