
    wg8                         d dl mZ d dlmZmZmZmZ d dlmZ d dl	m
Z
 d dlmZ d dlmZmZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlmZ d dlmZ d dlmZ  G d de          Z dS )    )Q)HttpRequestHttpResponseHttpResponseNotFoundHttpResponseRedirect)get_site_service)DomainRepositoryInterface)SiteServiceInterface)AdminSettingsget_admin_settings)SiteSettings)Site)get_domain_repository)UrlParserInterface)get_url_parser)PartnerIndexPage)BaseSessionMiddleware)BaseNotFoundPagec                       e Zd ZU  e            Zeed<    e            Ze	ed<    e
            Zeed<    e            Zeed<   d
dZdefd	ZdS )DomainMiddlewaresite_service
url_parseradmin_settingsdomain_repositoryreturnNc                     || _         d S )N)get_response)selfr   s     4/var/www/html/cms/web/settings/domains_middleware.py__init__zDomainMiddleware.__init__   s    (    requestc                    | j                             |j                  r|                     |          S |                                }|j        dd          }| j                             |          }| j                             |          }| j                                        }||_	        ||_
        ||_        | j                            |          |_        | j        j        |v r:d}| j        j        D ]}|                    |          rd} n|st%                      S | j                            |          s t+          j                    |          S |dk    rn|rlt.          j                            t5          |          t5          |          z                                            s t+          j                    |          S |r||k    r2t8          j                                        j        rt?          d          S ||k    r|dk    ry|                                 }	|	!                    |          s|	!                    |d	z             r tE          j                    |          S  t+          j                    |          S ||k    r2t8          j                                        j        rtG          d	          S |                     |          S )
N   FT	localhost)domain__domain)	subdomainu   <h1>Привет :)</h1> /)$r   	is_sourcepathr   get_hostget_subdomain_from_hostget_domain_from_hostr   get_partners_domain_stringpartner_domaindomainr'   landing_domain_existslandingr   admin_domainvalid_admin_urls
startswithr   r   valid_subdomainr   as_viewr   objectsfilterr   existsr   firstdisable_partners_sitesr   build_absolute_uriendswithr   r   )
r   r"   hostr+   r'   r1   r0   	valid_urlurluris
             r   __call__zDomainMiddleware.__call__"   s   ?$$W\22 	.$$W---!!|ACC O;;DAA	55d;;/JJLL!/%0FFvNN+t33I*;  ??3''  $IE  .+--- 00;; 	7-#+--g666 k!! "L''(@(@(@1yCYCYCY(YZZaacc " .#+--g666 	1''L,@,F,F,H,H,_'#$>???''IOO0022<<// ?3<<QT@T3U3U ?5+355g>>>1'/11':::''L,@,F,F,H,H,_'+C000  )))r!   )r   N)__name__
__module____qualname__r   r   r
   __annotations__r   r   r   r   r   r   r   r   r	   r    r   rD    r!   r   r   r      s         )9)9););L&;;;%3^%5%5J"555$6$6$8$8NM8883H3H3J3J0JJJ) ) ) )2* 2* 2* 2* 2* 2* 2*r!   r   N)!django.db.modelsr   django.httpr   r   r   r   !application.services.site_servicer    domain.domains.domain_repositoryr	   domain.user.sites.site_servicer
   #infrastructure.admin.admin_settingsr   r   *infrastructure.persistence.models.settingsr   +infrastructure.persistence.models.user.siter   9infrastructure.persistence.repositories.domain_repositoryr   )infrastructure.url_parser.base_url_parserr   $infrastructure.url_parser.url_parserr   web.settings.views.viewsr   +web.site_statistics.base_session_middlewarer   &web.template.views.base_page_not_foundr   r   rI   r!   r   <module>rX      sw                    ? > > > > > F F F F F F ? ? ? ? ? ? Q Q Q Q Q Q Q Q C C C C C C < < < < < <      I H H H H H ? ? ? ? ? ? 5 5 5 5 5 5 M M M M M M C C C C C C;* ;* ;* ;* ;*, ;* ;* ;* ;* ;*r!   