old_contents: '''
  ---------------------------------------- Masequerade ----------------------------------------
  Allow course staff to see a student or staff view of courseware.
  Which kind of view has been selected is stored in the session state.
  '''
  
  import json
  import logging
  
  from django.http import HttpResponse
  
  log = logging.getLogger(__name__)
  
  MASQ_KEY = 'masquerade_identity'
  
  
  def handle_ajax(request, marg):
      '''
      Handle ajax call from "staff view" / "student view" toggle button
      '''
      if marg == 'toggle':
          status = request.session.get(MASQ_KEY, '')
          if status is None or status in ['', 'staff']:
              status = 'student'
          else:
              status = 'staff'
          request.session[MASQ_KEY] = status
      return HttpResponse(json.dumps({'status': status}))
  
  
  def setup_masquerade(request, staff_access=False):
      '''
      Setup masquerade identity (allows staff to view courseware as either staff or student)
  
      Uses request.session[MASQ_KEY] to store status of masquerading.
      Adds masquerade status to request.user, if masquerading active.
      Return string version of status of view (either 'staff' or 'student')
      '''
      if request.user is None:
          return None
  
      if not staff_access:  # can masquerade only if user has staff access to course
          return None
  
      usertype = request.session.get(MASQ_KEY, '')
      if usertype is None or not usertype:
          request.session[MASQ_KEY] = 'staff'
          usertype = 'staff'
  
      if usertype == 'student':
          request.user.masquerade_as_student = True
  
      return usertype
  
  
  def is_masquerading_as_student(user):
      '''
      Return True if user is masquerading as a student, False otherwise
      '''
      masq = getattr(user, 'masquerade_as_student', False)
      return masq==True
  
new_contents: '''
  ---------------------------------------- Masequerade ----------------------------------------
  Allow course staff to see a student or staff view of courseware.
  Which kind of view has been selected is stored in the session state.
  '''
  
  import json
  import logging
  
  from django.http import HttpResponse
  from django.conf import settings
  
  log = logging.getLogger(__name__)
  
  MASQ_KEY = 'masquerade_identity'
  
  
  def handle_ajax(request, marg):
      '''
      Handle ajax call from "staff view" / "student view" toggle button
      '''
      if marg == 'toggle':
          status = request.session.get(MASQ_KEY, '')
          if status is None or status in ['', 'staff']:
              status = 'student'
          else:
              status = 'staff'
          request.session[MASQ_KEY] = status
      return HttpResponse(json.dumps({'status': status}))
  
  
  def setup_masquerade(request, staff_access=False):
      '''
      Setup masquerade identity (allows staff to view courseware as either staff or student)
  
      Uses request.session[MASQ_KEY] to store status of masquerading.
      Adds masquerade status to request.user, if masquerading active.
      Return string version of status of view (either 'staff' or 'student')
      '''
      if request.user is None:
          return None
  
      if not settings.MITX_FEATURES.get('ENABLE_MASQUERADE', False):
          return None
  
      if not staff_access:  # can masquerade only if user has staff access to course
          return None
  
      usertype = request.session.get(MASQ_KEY, '')
      if usertype is None or not usertype:
          request.session[MASQ_KEY] = 'staff'
          usertype = 'staff'
  
      if usertype == 'student':
          request.user.masquerade_as_student = True
  
      return usertype
  
  
  def is_masquerading_as_student(user):
      '''
      Return True if user is masquerading as a student, False otherwise
      '''
      masq = getattr(user, 'masquerade_as_student', False)
      return masq==True
  
subject: use ENABLE_MASQUERADE in masquerade.py