@csrf_exempt
def handle_xblock_callback_noauth(request, course_id, usage_id, handler, suffix=None):
 request.user.known = False
 course_key = CourseKey.from_string(course_id)
 with modulestore().bulk_operations(course_key):
  course = modulestore().get_course(course_key, depth=0)
  return _invoke_xblock_handler(request, course_id, usage_id, handler, suffix, course=course)

@ csrf_exempt def handle_xblock_callback_noauth ( request , course_id , usage_id , handler , suffix = None ) : request . user . known = False course_key = CourseKey . from_string ( course_id ) with modulestore ( ) . bulk_operations ( course_key ) : course = modulestore ( ) . get_course ( course_key , depth = 0 ) return _invoke_xblock_handler ( request , course_id , usage_id , handler , suffix , course = course )
entry point for unauthenticated xblock handlers .