Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
edx-platform
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
edx
edx-platform
Commits
43779814
Commit
43779814
authored
Sep 02, 2015
by
Sven Marnach
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Optimise getting list of courses from Enrollment API for global staff.
parent
dd021841
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
4 deletions
+9
-4
common/djangoapps/enrollment/tests/test_views.py
+6
-2
common/djangoapps/enrollment/views.py
+3
-2
No files found.
common/djangoapps/enrollment/tests/test_views.py
View file @
43779814
...
@@ -32,7 +32,7 @@ from openedx.core.djangoapps.user_api.models import UserOrgTag
...
@@ -32,7 +32,7 @@ from openedx.core.djangoapps.user_api.models import UserOrgTag
from
openedx.core.lib.django_test_client_utils
import
get_absolute_url
from
openedx.core.lib.django_test_client_utils
import
get_absolute_url
from
student.models
import
CourseEnrollment
from
student.models
import
CourseEnrollment
from
student.roles
import
CourseStaffRole
from
student.roles
import
CourseStaffRole
from
student.tests.factories
import
UserFactory
,
CourseMode
Factory
from
student.tests.factories
import
AdminFactory
,
CourseModeFactory
,
User
Factory
from
embargo.test_utils
import
restrict_course
from
embargo.test_utils
import
restrict_course
...
@@ -353,11 +353,15 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
...
@@ -353,11 +353,15 @@ class EnrollmentTest(EnrollmentTestMixin, ModuleStoreTestCase, APITestCase):
self
.
client
.
login
(
username
=
self
.
OTHER_USERNAME
,
password
=
self
.
PASSWORD
)
self
.
client
.
login
(
username
=
self
.
OTHER_USERNAME
,
password
=
self
.
PASSWORD
)
self
.
_assert_enrollments_visible_in_list
([])
self
.
_assert_enrollments_visible_in_list
([])
# Create a staff user for self.course (but nor for other_course) and log her in.
# Create a staff user for self.course (but nor for other_course) and log her in.
staff_user
=
UserFactory
.
create
(
username
=
'staff'
,
email
=
'staff@example.com'
,
password
=
self
.
PASSWORD
,
)
staff_user
=
UserFactory
.
create
(
username
=
'staff'
,
email
=
'staff@example.com'
,
password
=
self
.
PASSWORD
)
CourseStaffRole
(
self
.
course
.
id
)
.
add_users
(
staff_user
)
CourseStaffRole
(
self
.
course
.
id
)
.
add_users
(
staff_user
)
self
.
client
.
login
(
username
=
'staff'
,
password
=
self
.
PASSWORD
)
self
.
client
.
login
(
username
=
'staff'
,
password
=
self
.
PASSWORD
)
# Verify that she can see only the enrollment in the course she has staff privileges for.
# Verify that she can see only the enrollment in the course she has staff privileges for.
self
.
_assert_enrollments_visible_in_list
([
self
.
course
])
self
.
_assert_enrollments_visible_in_list
([
self
.
course
])
# Create a global staff user, and verify she can see all enrollments.
AdminFactory
(
username
=
'global_staff'
,
email
=
'global_staff@example.com'
,
password
=
self
.
PASSWORD
)
self
.
client
.
login
(
username
=
'global_staff'
,
password
=
self
.
PASSWORD
)
self
.
_assert_enrollments_visible_in_list
([
self
.
course
,
other_course
])
# Verify the server can see all enrollments.
# Verify the server can see all enrollments.
self
.
client
.
logout
()
self
.
client
.
logout
()
self
.
_assert_enrollments_visible_in_list
([
self
.
course
,
other_course
],
use_server_key
=
True
)
self
.
_assert_enrollments_visible_in_list
([
self
.
course
,
other_course
],
use_server_key
=
True
)
...
...
common/djangoapps/enrollment/views.py
View file @
43779814
...
@@ -32,7 +32,7 @@ from enrollment.errors import (
...
@@ -32,7 +32,7 @@ from enrollment.errors import (
)
)
from
student.auth
import
user_has_role
from
student.auth
import
user_has_role
from
student.models
import
User
from
student.models
import
User
from
student.roles
import
CourseStaffRole
from
student.roles
import
CourseStaffRole
,
GlobalStaff
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
...
@@ -472,7 +472,8 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
...
@@ -472,7 +472,8 @@ class EnrollmentListView(APIView, ApiKeyPermissionMixIn):
)
.
format
(
username
=
username
)
)
.
format
(
username
=
username
)
}
}
)
)
if
username
==
request
.
user
.
username
or
self
.
has_api_key_permissions
(
request
):
if
username
==
request
.
user
.
username
or
GlobalStaff
()
.
has_user
(
request
.
user
)
or
\
self
.
has_api_key_permissions
(
request
):
return
Response
(
enrollment_data
)
return
Response
(
enrollment_data
)
filtered_data
=
[]
filtered_data
=
[]
for
enrollment
in
enrollment_data
:
for
enrollment
in
enrollment_data
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment