25 lines
703 B
Python
25 lines
703 B
Python
"""
|
|
Middleware for the courseware app
|
|
"""
|
|
|
|
from django.shortcuts import redirect
|
|
from django.core.urlresolvers import reverse
|
|
|
|
from courseware.courses import UserNotEnrolled
|
|
|
|
|
|
class RedirectUnenrolledMiddleware(object):
|
|
"""
|
|
Catch UserNotEnrolled errors thrown by `get_course_with_access` and redirect
|
|
users to the course about page
|
|
"""
|
|
def process_exception(self, _request, exception):
|
|
if isinstance(exception, UserNotEnrolled):
|
|
course_key = exception.course_key
|
|
return redirect(
|
|
reverse(
|
|
'courseware.views.course_about',
|
|
args=[course_key.to_deprecated_string()]
|
|
)
|
|
)
|