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
a2bbb65d
Commit
a2bbb65d
authored
11 years ago
by
Kevin Chugh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
refactor to add access control to already_existing access control routines in access.py
parent
013009ea
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
11 deletions
+15
-11
lms/djangoapps/courseware/access.py
+9
-0
lms/djangoapps/django_comment_client/forum/views.py
+6
-11
No files found.
lms/djangoapps/courseware/access.py
View file @
a2bbb65d
...
...
@@ -114,6 +114,7 @@ def _has_access_course_desc(user, course, action):
Valid actions:
'load' -- load the courseware, see inside the course
'load_forum' -- can load and contribute to the forums (one access level for now)
'enroll' -- enroll. Checks for enrollment window,
ACCESS_REQUIRE_STAFF_FOR_COURSE,
'see_exists' -- can see that the course exists.
...
...
@@ -128,6 +129,13 @@ def _has_access_course_desc(user, course, action):
# delegate to generic descriptor check to check start dates
return
_has_access_descriptor
(
user
,
course
,
'load'
)
def
can_load_forum
():
"""
Can this user access the forums in this course?
"""
return
(
CourseEnrollment
.
is_enrolled
(
request
.
user
,
course_id
)
or
\
_has_staff_access_to_descriptor
(
user
,
course
)
def
can_enroll
():
"""
First check if restriction of enrollment by login method is enabled, both
...
...
@@ -193,6 +201,7 @@ def _has_access_course_desc(user, course, action):
checkers
=
{
'load'
:
can_load
,
'load_forum'
:
can_load_forum
,
'enroll'
:
can_enroll
,
'see_exists'
:
see_exists
,
'staff'
:
lambda
:
_has_staff_access_to_descriptor
(
user
,
course
),
...
...
This diff is collapsed.
Click to expand it.
lms/djangoapps/django_comment_client/forum/views.py
View file @
a2bbb65d
...
...
@@ -109,7 +109,7 @@ def inline_discussion(request, course_id, discussion_id):
"""
Renders JSON for DiscussionModules
"""
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load'
)
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load
_forum
'
)
try
:
threads
,
query_params
=
get_threads
(
request
,
course_id
,
discussion_id
,
per_page
=
INLINE_THREADS_PER_PAGE
)
...
...
@@ -169,13 +169,8 @@ def forum_form_discussion(request, course_id):
"""
Renders the main Discussion page, potentially filtered by a search query
"""
if
not
CourseEnrollment
.
is_enrolled
(
request
.
user
,
course_id
)
and
\
not
has_access
(
request
.
user
,
course_id
,
'staff'
):
access_violation_msg
=
"Unenrolled user {} tried to access forum for {}"
log
.
warning
(
access_violation_msg
.
format
(
request
.
user
,
course_id
))
raise
Http404
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load'
)
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load
_forum
'
)
category_map
=
utils
.
get_discussion_category_map
(
course
)
try
:
...
...
@@ -245,7 +240,7 @@ def forum_form_discussion(request, course_id):
@login_required
def
single_thread
(
request
,
course_id
,
discussion_id
,
thread_id
):
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load'
)
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load
_forum
'
)
cc_user
=
cc
.
User
.
from_django_user
(
request
.
user
)
user_info
=
cc_user
.
to_dict
()
...
...
@@ -280,7 +275,7 @@ def single_thread(request, course_id, discussion_id, thread_id):
log
.
error
(
"Error loading single thread."
)
raise
Http404
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load'
)
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load
_forum
'
)
for
thread
in
threads
:
courseware_context
=
get_courseware_context
(
thread
,
course
)
...
...
@@ -340,7 +335,7 @@ def single_thread(request, course_id, discussion_id, thread_id):
@login_required
def
user_profile
(
request
,
course_id
,
user_id
):
#TODO: Allow sorting?
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load'
)
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load
_forum
'
)
try
:
profiled_user
=
cc
.
User
(
id
=
user_id
,
course_id
=
course_id
)
...
...
@@ -381,7 +376,7 @@ def user_profile(request, course_id, user_id):
def
followed_threads
(
request
,
course_id
,
user_id
):
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load'
)
course
=
get_course_with_access
(
request
.
user
,
course_id
,
'load
_forum
'
)
try
:
profiled_user
=
cc
.
User
(
id
=
user_id
,
course_id
=
course_id
)
...
...
This diff is collapsed.
Click to expand it.
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