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
dfa7b73a
Commit
dfa7b73a
authored
Dec 01, 2017
by
Albert St. Aubin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updates to the API Endpoint to remove the Staff users ability to get all
Entitlements
parent
989c3a30
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
6 deletions
+18
-6
common/djangoapps/entitlements/api/v1/tests/test_views.py
+4
-3
common/djangoapps/entitlements/api/v1/views.py
+14
-3
No files found.
common/djangoapps/entitlements/api/v1/tests/test_views.py
View file @
dfa7b73a
...
...
@@ -120,8 +120,9 @@ class EntitlementViewSetTest(ModuleStoreTestCase):
results
=
response
.
data
.
get
(
'results'
,
[])
# pylint: disable=no-member
assert
results
==
CourseEntitlementSerializer
([
entitlement
],
many
=
True
)
.
data
def
test_staff_get_all_entitlements
(
self
):
entitlements
=
CourseEntitlementFactory
.
create_batch
(
2
)
def
test_staff_not_get_all_entitlements
(
self
):
CourseEntitlementFactory
.
create_batch
(
2
)
entitlement
=
CourseEntitlementFactory
.
create
(
user
=
self
.
user
)
response
=
self
.
client
.
get
(
self
.
entitlements_list_url
,
...
...
@@ -130,7 +131,7 @@ class EntitlementViewSetTest(ModuleStoreTestCase):
assert
response
.
status_code
==
200
results
=
response
.
data
.
get
(
'results'
,
[])
assert
results
==
CourseEntitlementSerializer
(
entitlements
,
many
=
True
)
.
data
assert
results
==
CourseEntitlementSerializer
(
[
entitlement
]
,
many
=
True
)
.
data
def
test_get_user_entitlements
(
self
):
user2
=
UserFactory
()
...
...
common/djangoapps/entitlements/api/v1/views.py
View file @
dfa7b73a
...
...
@@ -26,9 +26,20 @@ class EntitlementViewSet(viewsets.ModelViewSet):
def
get_queryset
(
self
):
user
=
self
.
request
.
user
if
user
.
is_staff
:
return
CourseEntitlement
.
objects
.
all
()
.
select_related
(
'user'
)
return
CourseEntitlement
.
objects
.
filter
(
user
=
user
)
.
select_related
(
'user'
)
if
self
.
request
.
method
in
permissions
.
SAFE_METHODS
:
if
(
user
.
is_staff
and
(
self
.
request
.
query_params
.
get
(
'user'
,
None
)
is
not
None
or
self
.
kwargs
.
get
(
'uuid'
,
None
)
is
not
None
)):
# Return the full query set so that the Filters class can be used to apply,
# - The UUID Filter
# - The User Filter to the GET request
return
CourseEntitlement
.
objects
.
all
()
.
select_related
(
'user'
)
# Non Staff Users will only be able to retrieve their own entitlements
return
CourseEntitlement
.
objects
.
filter
(
user
=
user
)
.
select_related
(
'user'
)
# All other methods require the full Query set and the Permissions class already restricts access to them
# to Admin users
return
CourseEntitlement
.
objects
.
all
()
.
select_related
(
'user'
)
def
perform_destroy
(
self
,
instance
):
"""
...
...
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