from warnings import warn
from django.conf import settings


def patch_response(request, response, methods):
    if getattr(settings, 'SERRANO_CORS_ENABLED', False):
        if hasattr(settings, 'SERRANO_CORS_ORIGIN'):
            warn('SERRANO_CORS_ORIGIN has been deprecated in favor '
                 'of SERRANO_CORS_ORIGINS', DeprecationWarning)
            allowed_origins = [s.strip() for s in
                               settings.SERRANO_CORS_ORIGIN.split(',')]
        else:
            allowed_origins = getattr(settings, 'SERRANO_CORS_ORIGINS', ())

        origin = request.META.get('HTTP_ORIGIN')

        if not allowed_origins or origin and origin in allowed_origins:
            # The origin must be explicitly listed when used with the
            # Access-Control-Allow-Credentials header
            # See https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Access-Control-Allow-Origin # noqa
            response['Access-Control-Allow-Origin'] = origin
            if request.method == 'OPTIONS':
                response['Access-Control-Allow-Credentials'] = 'true'
                response['Access-Control-Allow-Methods'] = ', '.join(methods)
                headers = request.META.get('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')  # noqa
                if headers:
                    response['Access-Control-Allow-Headers'] = headers
    return response

from warnings import warn
from django.conf import settings


def patch_response(request, response, methods):
    if getattr(settings, 'SERRANO_CORS_ENABLED', False):
        if hasattr(settings, 'SERRANO_CORS_ORIGIN'):
            warn('SERRANO_CORS_ORIGIN has been deprecated in favor '
                 'of SERRANO_CORS_ORIGINS', DeprecationWarning)
            allowed_origins = [s.strip() for s in
                               settings.SERRANO_CORS_ORIGIN.split(',')]
        else:
            allowed_origins = getattr(settings, 'SERRANO_CORS_ORIGINS', ())

        origin = request.META.get('HTTP_ORIGIN')

        if not allowed_origins or origin in allowed_origins:
            # The origin must be explicitly listed when used with the
            # Access-Control-Allow-Credentials header
            # See https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Access-Control-Allow-Origin # noqa
            response['Access-Control-Allow-Origin'] = origin
            if request.method == 'OPTIONS':
                response['Access-Control-Allow-Credentials'] = 'true'
                response['Access-Control-Allow-Methods'] = ', '.join(methods)
                headers = request.META.get('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')  # noqa
                if headers:
                    response['Access-Control-Allow-Headers'] = headers
    return response

Remove truth assertion on origin
Remove truth assertion on origin

This is a remnant from testing in the SERRANO_CORS_ORIGIN string. Now
that the `in` applies to a list, this assertion is no longer needed.

  from warnings import warn
  from django.conf import settings
  
  
  def patch_response(request, response, methods):
      if getattr(settings, 'SERRANO_CORS_ENABLED', False):
          if hasattr(settings, 'SERRANO_CORS_ORIGIN'):
              warn('SERRANO_CORS_ORIGIN has been deprecated in favor '
                   'of SERRANO_CORS_ORIGINS', DeprecationWarning)
              allowed_origins = [s.strip() for s in
                                 settings.SERRANO_CORS_ORIGIN.split(',')]
          else:
              allowed_origins = getattr(settings, 'SERRANO_CORS_ORIGINS', ())
  
          origin = request.META.get('HTTP_ORIGIN')
  
-         if not allowed_origins or origin and origin in allowed_origins:
+         if not allowed_origins or origin in allowed_origins:
              # The origin must be explicitly listed when used with the
              # Access-Control-Allow-Credentials header
              # See https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Access-Control-Allow-Origin # noqa
              response['Access-Control-Allow-Origin'] = origin
              if request.method == 'OPTIONS':
                  response['Access-Control-Allow-Credentials'] = 'true'
                  response['Access-Control-Allow-Methods'] = ', '.join(methods)
                  headers = request.META.get('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')  # noqa
                  if headers:
                      response['Access-Control-Allow-Headers'] = headers
      return response
  
Remove truth assertion on origin
## Code Before:
from warnings import warn
from django.conf import settings


def patch_response(request, response, methods):
    if getattr(settings, 'SERRANO_CORS_ENABLED', False):
        if hasattr(settings, 'SERRANO_CORS_ORIGIN'):
            warn('SERRANO_CORS_ORIGIN has been deprecated in favor '
                 'of SERRANO_CORS_ORIGINS', DeprecationWarning)
            allowed_origins = [s.strip() for s in
                               settings.SERRANO_CORS_ORIGIN.split(',')]
        else:
            allowed_origins = getattr(settings, 'SERRANO_CORS_ORIGINS', ())

        origin = request.META.get('HTTP_ORIGIN')

        if not allowed_origins or origin and origin in allowed_origins:
            # The origin must be explicitly listed when used with the
            # Access-Control-Allow-Credentials header
            # See https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Access-Control-Allow-Origin # noqa
            response['Access-Control-Allow-Origin'] = origin
            if request.method == 'OPTIONS':
                response['Access-Control-Allow-Credentials'] = 'true'
                response['Access-Control-Allow-Methods'] = ', '.join(methods)
                headers = request.META.get('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')  # noqa
                if headers:
                    response['Access-Control-Allow-Headers'] = headers
    return response

## Instruction:
Remove truth assertion on origin
## Code After:
from warnings import warn
from django.conf import settings


def patch_response(request, response, methods):
    if getattr(settings, 'SERRANO_CORS_ENABLED', False):
        if hasattr(settings, 'SERRANO_CORS_ORIGIN'):
            warn('SERRANO_CORS_ORIGIN has been deprecated in favor '
                 'of SERRANO_CORS_ORIGINS', DeprecationWarning)
            allowed_origins = [s.strip() for s in
                               settings.SERRANO_CORS_ORIGIN.split(',')]
        else:
            allowed_origins = getattr(settings, 'SERRANO_CORS_ORIGINS', ())

        origin = request.META.get('HTTP_ORIGIN')

        if not allowed_origins or origin in allowed_origins:
            # The origin must be explicitly listed when used with the
            # Access-Control-Allow-Credentials header
            # See https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Access-Control-Allow-Origin # noqa
            response['Access-Control-Allow-Origin'] = origin
            if request.method == 'OPTIONS':
                response['Access-Control-Allow-Credentials'] = 'true'
                response['Access-Control-Allow-Methods'] = ', '.join(methods)
                headers = request.META.get('HTTP_ACCESS_CONTROL_REQUEST_HEADERS')  # noqa
                if headers:
                    response['Access-Control-Allow-Headers'] = headers
    return response
