
    hF                     L    d dl mZ d dlT d dlmZ  G d dej                  ZdS )    )
cmf_plugin)*)fieldsc                   V     e Zd Zed             Zd Zd Zddddd fd
Z fd	Z xZ	S )
	CmfPluginc           	         dd l }t          j        sd S t          j                            d          rSt          j                            d          d         }|                    d          d                                         }nt          j        }|s
J d            |	                    |          }dg}t          j        D ]}dd|gdddt          |          gg d	g d
gg}t          j        |         sJ d|             t          j        |         D ]7}|                    |dt          j                            |          g           8|                    |           t          j                            d          rdS t                               d|            d }	d }
t$          j                            |ddg          D ]2}
|
j        sd}	 n&|
j        D ]}||                    |          v rd}	 n3|	st/          d          |
S )Nr   zX-Forwarded-For,uW   Не удалось получить IP address из заголовка X-Forwarded-ForORtype==ext_ip)r   r   N)r   r   z0.0.0.0uQ   Настройка PUB_ACCEPT_TYPES не может быть пустой для z/pub/webhookTu   Ищем секрет z--ext_networks)filterr   u   Ошибка доступа)	ipaddressconfigPUB_ACCEPT_TYPESrequestheadersgetlistsplitstripremote_addrIPv4Addressstrappendargsgetpath
startswithgdebugmodelsr   listr   IPv4Network	Exception)clsr   ipsr   
ext_ip_obj_filter	type_name
sub_filterkeyacceptedpluginnetworks               ./cmf/models/cmf_plugin.pycheck_secretzCmfPlugin.check_secret   sh   & 	4 ?""#455 	)/))*;<<Q?CYYs^^A&,,..FF(Fpppppv **622
&0 	' 	'Iy)D#j//2''',,,J *95 p podmoop p5 .y9 F F!!3gl.>.>s.C.C"DEEEENN:&&&&<"">22 	4	222333&++7D.CY+ZZ 	 	F& !.  !6!6w!?!???#HE @  	;9:::    c                 0    | j         rd S | j        | _         d S )N)nameext_url)selfs    r0   
_calc_namezCmfPlugin._calc_nameA   s    9 	FL			r2   c                 P   ddl m} | j        j        s@| j        j        s4| j        j        s(| j        j        s| j        j        r| j        s	| j        sd S | j        j        | j        j        nd}| j        j        | j        j        nd}|	                    | | d          | _        d S )Nr   )cmf_hashlib    )
cmf.utilr9   r5   is_not_null
is_changedext_token_addonsource_hashis_nullvalueshort_str_enc)r6   r9   r5   r?   s       r0   _calc_source_hashzCmfPlugin._calc_source_hashF   s    (((((()	-1\-D	(4	8<8L8W	 $,	 37,	 CGBV	
 F(,(:(F$,$$B8<8L8R8^$.44df&445R5R5RTUVVr2   r   TNdepthnotifyemitorderno_filterc                    |                                   |                                  | j        r#| j        j                                        | _         t                      j        |||||d|S )NrE   )r7   rD   	ext_loginrB   r   supersave)r6   rF   rG   rH   rI   r   kwargs	__class__s          r0   rM   zCmfPlugin.saveR   so       > 	:!^17799DNuww|TvDYgrrkqrrrr2   c                 N    t                                                      g dz   S )N)r5   r@   r?   rK   r5   )rL   save_preload_fields)r6   rO   s    r0   rQ   zCmfPlugin.save_preload_fieldsY   s%    ww**,,/t/t/tttr2   )
__name__
__module____qualname__classmethodr1   r7   rD   rM   rQ   __classcell__)rO   s   @r0   r   r      s        6 6 [6p! ! !

W 
W 
W !"$T$ s s s s s s su u u u u u u u ur2   r   N)
cmf.fieldsr   cmf.includecmfr   r    r2   r0   <module>r[      s    ! ! ! ! ! !          Tu Tu Tu Tu Tu
$ Tu Tu Tu Tu Tur2   