
    si                        d Z ddlZddlmZ ddlmZ ddlmZ  ej                  d        ej                  d        ej                  d        ej                  d	        ej                  d
        ej                  d
        ej                  d        ej                  d        ej                         Z
 G d d      Z G d d      Z G d d      Zy)zy
horilla_middlewares.py

This module is used to register horilla's middlewares without affecting the horilla/settings.py
    N)HttpResponseNotAllowed)render)
MIDDLEWAREz!base.middleware.CompanyMiddlewarez6horilla.horilla_middlewares.MethodNotAllowedMiddlewarez1horilla.horilla_middlewares.ThreadLocalMiddlewarez1horilla.horilla_middlewares.SVGSecurityMiddlewarez1accessibility.middlewares.AccessibilityMiddlewarez-base.middleware.ForcePasswordChangeMiddlewarez'base.middleware.TwoFactorAuthMiddlewarec                       e Zd ZdZd Zd Zy)ThreadLocalMiddlewarez
    ThreadLocalMiddleWare
    c                     || _         y Nget_responseselfr   s     ?/var/www/python-projects/worksol/horilla/horilla_middlewares.py__init__zThreadLocalMiddleware.__init__   
    (    c                 >    |t         _        | j                  |      }|S r	   )_thread_localsrequestr   r   r   responses      r   __call__zThreadLocalMiddleware.__call__!   s    !($$W-r   N)__name__
__module____qualname____doc__r   r    r   r   r   r      s    )r   r   c                       e Zd Zd Zd Zy)MethodNotAllowedMiddlewarec                     || _         y r	   r
   r   s     r   r   z#MethodNotAllowedMiddleware.__init__(   r   r   c                 `    | j                  |      }t        |t              rt        |d      S |S )Nz405.html)r   
isinstancer   r   r   s      r   r   z#MethodNotAllowedMiddleware.__call__+   s/    $$W-h 67':..r   Nr   r   r   r   r   r   r   r   r   r   '   s    )r   r   c                       e Zd Zd Zd Zy)SVGSecurityMiddlewarec                     || _         y r	   r
   r   s     r   r   zSVGSecurityMiddleware.__init__3   r   r   c                     | j                  |      }|j                  j                  d      r|j                  dk(  r
d|d<   d|d<   |S )Nz.svg   z.default-src 'none'; style-src 'unsafe-inline';zContent-Security-PolicynosniffzX-Content-Type-Options)r   pathendswithstatus_coder   s      r   r   zSVGSecurityMiddleware.__call__6   sS    $$W- <<  (X-A-AS-H@ ./ 2;H-.r   Nr"   r   r   r   r$   r$   2   s    )
r   r$   )r   	threadingdjango.httpr   django.shortcutsr   horilla.settingsr   appendlocalr   r   r   r$   r   r   r   <module>r2      s     . # ' 
  5 6 
  J K 
  E F 
  E F 
  E F 
  E F 
  A B 
  ; < "   r   