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
793f9167
Commit
793f9167
authored
Jan 26, 2016
by
Awais Jibran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
TNL-4049
Specific user cannot access studio.edge.edx.org/home
parent
aed41b15
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
36 additions
and
9 deletions
+36
-9
cms/djangoapps/contentstore/tests/test_course_listing.py
+33
-6
cms/djangoapps/contentstore/views/course.py
+3
-3
No files found.
cms/djangoapps/contentstore/tests/test_course_listing.py
View file @
793f9167
...
...
@@ -13,7 +13,7 @@ from xmodule.course_module import CourseSummary
from
contentstore.views.course
import
(
_accessible_courses_list
,
_accessible_courses_list_from_groups
,
AccessListFallback
,
get_courses_accessible_to_user
,
_
staff_accessible_course
_list
)
_
accessible_courses_summary
_list
)
from
contentstore.utils
import
delete_course_and_groups
from
contentstore.tests.utils
import
AjaxEnabledTestClient
from
student.tests.factories
import
UserFactory
...
...
@@ -83,9 +83,13 @@ class TestCourseListing(ModuleStoreTestCase):
courses_list
,
__
=
_accessible_courses_list
(
self
.
request
)
self
.
assertEqual
(
len
(
courses_list
),
1
)
courses_summary_list
,
__
=
_accessible_courses_summary_list
(
self
.
request
)
self
.
assertEqual
(
len
(
courses_summary_list
),
1
)
# get courses by reversing group name formats
courses_list_by_groups
,
__
=
_accessible_courses_list_from_groups
(
self
.
request
)
self
.
assertEqual
(
len
(
courses_list_by_groups
),
1
)
# check both course lists have same courses
self
.
assertEqual
(
courses_list
,
courses_list_by_groups
)
...
...
@@ -145,7 +149,7 @@ class TestCourseListing(ModuleStoreTestCase):
# Now count the db queries for staff
with
check_mongo_calls
(
mongo_calls
):
_
staff_accessible_course
_list
(
self
.
request
)
_
accessible_courses_summary
_list
(
self
.
request
)
@ddt.data
(
(
ModuleStoreEnum
.
Type
.
split
,
'xmodule.modulestore.split_mongo.split_mongo_kvs.SplitMongoKVS'
),
...
...
@@ -189,10 +193,18 @@ class TestCourseListing(ModuleStoreTestCase):
courses_list
,
__
=
_accessible_courses_list
(
self
.
request
)
self
.
assertEqual
(
len
(
courses_list
),
1
)
courses_summary_list
,
__
=
_accessible_courses_summary_list
(
self
.
request
)
# Verify fetched accessible courses list is a list of CourseSummery instances and only one course
# is returned
self
.
assertTrue
(
all
(
isinstance
(
course
,
CourseSummary
)
for
course
in
courses_summary_list
))
self
.
assertEqual
(
len
(
courses_summary_list
),
1
)
# get courses by reversing group name formats
courses_list_by_groups
,
__
=
_accessible_courses_list_from_groups
(
self
.
request
)
self
.
assertEqual
(
len
(
courses_list_by_groups
),
1
)
# check both course lists have same courses
# check course lists have same courses
self
.
assertEqual
(
courses_list
,
courses_list_by_groups
)
# now delete this course and re-add user to instructor group of this course
...
...
@@ -200,9 +212,20 @@ class TestCourseListing(ModuleStoreTestCase):
CourseInstructorRole
(
course_key
)
.
add_users
(
self
.
user
)
#
test that get courses through iterating all courses now returns no course
#
Get courses through iterating all courses
courses_list
,
__
=
_accessible_courses_list
(
self
.
request
)
self
.
assertEqual
(
len
(
courses_list
),
0
)
# Get course summaries by iterating all courses
courses_summary_list
,
__
=
_accessible_courses_summary_list
(
self
.
request
)
# Get courses by reversing group name formats
courses_list_by_groups
,
__
=
_accessible_courses_list_from_groups
(
self
.
request
)
# Test that course list returns no course
self
.
assertEqual
(
[
len
(
courses_list
),
len
(
courses_list_by_groups
),
len
(
courses_summary_list
)],
[
0
,
0
,
0
]
)
@ddt.data
(
(
ModuleStoreEnum
.
Type
.
split
,
150
,
505
),
...
...
@@ -308,8 +331,12 @@ class TestCourseListing(ModuleStoreTestCase):
with
self
.
assertRaises
(
AccessListFallback
):
_accessible_courses_list_from_groups
(
self
.
request
)
courses_list
,
__
=
_accessible_courses_list
(
self
.
request
)
courses_list
,
__
=
get_courses_accessible_to_user
(
self
.
request
)
# Verify fetched accessible courses list is a list of CourseSummery instances and test expacted
# course count is returned
self
.
assertEqual
(
len
(
courses_list
),
2
)
self
.
assertTrue
(
all
(
isinstance
(
course
,
CourseSummary
)
for
course
in
courses_list
))
def
test_course_listing_with_actions_in_progress
(
self
):
sourse_course_key
=
CourseLocator
(
'source-Org'
,
'source-Course'
,
'source-Run'
)
...
...
cms/djangoapps/contentstore/views/course.py
View file @
793f9167
...
...
@@ -358,7 +358,7 @@ def get_in_process_course_actions(request):
]
def
_
staff_accessible_course
_list
(
request
):
def
_
accessible_courses_summary
_list
(
request
):
"""
List all courses available to the logged in user by iterating through all the courses
"""
...
...
@@ -621,14 +621,14 @@ def get_courses_accessible_to_user(request):
"""
if
GlobalStaff
()
.
has_user
(
request
.
user
):
# user has global access so no need to get courses from django groups
courses
,
in_process_course_actions
=
_
staff_accessible_course
_list
(
request
)
courses
,
in_process_course_actions
=
_
accessible_courses_summary
_list
(
request
)
else
:
try
:
courses
,
in_process_course_actions
=
_accessible_courses_list_from_groups
(
request
)
except
AccessListFallback
:
# user have some old groups or there was some error getting courses from django groups
# so fallback to iterating through all courses
courses
,
in_process_course_actions
=
_accessible_courses_list
(
request
)
courses
,
in_process_course_actions
=
_accessible_courses_
summary_
list
(
request
)
return
courses
,
in_process_course_actions
...
...
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