
    h                     X    d dl mZ d dlT d dlmZ d dlmZ  G d dej                  ZdS )    )
cmf_plugin)*)fields)
BadRequestc                   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           	      N   dd l }t          j        sd S t                                          }|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   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cmfutilget_client_ipIPv4Addressstrappendrequestargsgetpath
startswithgdebugmodelsr   listr   IPv4Networkr   )clsr   r   
ext_ip_obj_filter	type_name
sub_filterkeyacceptedpluginnetworks              ./cmf/models/cmf_plugin.pycheck_secretzCmfPlugin.check_secret   s   & 	4&&((pppppp **622
&0 	' 	'Iy)D#j//2''',,,J *95 p podmoop p p .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 @  	<:;;;    c                 0    | j         rd S | j        | _         d S )N)nameext_url)selfs    r+   
_calc_namezCmfPlugin._calc_name;   s    9 	FL			r-   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.utilr4   r0   is_not_null
is_changedext_token_addonsource_hashis_nullvalueshort_str_enc)r1   r4   r0   r:   s       r+   _calc_source_hashzCmfPlugin._calc_source_hash@   s    (((((()	-1\-D	(4	8<8L8W	 $,	 37,	 CGBV	
 F(,(:(F$,$$B8<8L8R8^$.44df&445R5R5RTUVVr-   r   TNdepthnotifyemitorderno_filterc                    |                                   |                                  | j        r#| j        j                                        | _         t                      j        |||||d|S )Nr@   )r2   r?   	ext_loginr=   stripsupersave)r1   rA   rB   rC   rD   r   kwargs	__class__s          r+   rI   zCmfPlugin.saveL   so       > 	:!^17799DNuww|TvDYgrrkqrrrr-   c                 N    t                                                      g dz   S )N)r0   r;   r:   rF   r0   )rH   save_preload_fields)r1   rK   s    r+   rM   zCmfPlugin.save_preload_fieldsS   s%    ww**,,/t/t/tttr-   )
__name__
__module____qualname__classmethodr,   r2   r?   rI   rM   __classcell__)rK   s   @r+   r   r      s        0 0 [0d! ! !

W 
W 
W !"$T$ s s s s s s su u u u u u u u ur-   r   N)
cmf.fieldsr   cmf.includecmfr   werkzeug.exceptionsr   r    r-   r+   <module>rX      s    ! ! ! ! ! !           * * * * * *Nu Nu Nu Nu Nu
$ Nu Nu Nu Nu Nur-   