U
    c                     @   s6   d dl mZ d dlT d dlmZ G dd dejZdS )    )
cmf_plugin)*)fieldsc                       sP   e Zd Zedd Zdd Zdd Zdddd	d
 fdd
Z fddZ  Z	S )	CmfPluginc                 C   s   t js
d S tjdr(tjdd }ntj}dg}t jD ]T}dd|gddddgdd|ggg}t j| D ]}||dtj| g qh|| q:t	d|  t
jj|d	}|S )
NzX-Forwarded-Forr   ORtypez==ext_ipz	0.0.0.0/0u   Ищем секрет )filter)ZconfigZPUB_ACCEPT_TYPESZrequestZheadersZgetlistZremote_addrappendargsgdebugZmodelsr   get)clsr   Z_filter	type_nameZ
sub_filterkeyZplugin r   ./models/cmf_plugin.pycheck_secret   s    
 zCmfPlugin.check_secretc                 C   s   | j r
d S | j| _ d S )N)nameext_urlselfr   r   r   
_calc_name   s    zCmfPlugin._calc_namec                 C   sD   ddl m} | jjs.| jjs.| jjr*| js.d S || jjd| _d S )Nr   )cmf_hashlib   )	Zcmf.utilr   r   Zis_not_nullZ
is_changedsource_hashZis_nullZshort_str_encvalue)r   r   r   r   r   _calc_source_hash#   s    zCmfPlugin._calc_source_hashr   TNdepthnotifyemitorderno_filterc                   s@   |    |   | jr$| jj | _t j|||||d|S )Nr   )r   r   Z	ext_loginr   stripsupersave)r   r    r!   r"   r#   r   kwargs	__class__r   r   r&   )   s
    zCmfPlugin.savec                    s   t   ddg S )Nr   r   )r%   save_preload_fieldsr   r(   r   r   r*   0   s    zCmfPlugin.save_preload_fields)
__name__
__module____qualname__classmethodr   r   r   r&   r*   __classcell__r   r   r(   r   r      s   
r   N)Z
cmf.fieldsr   Zcmf.includeZcmfr   r   r   r   r   r   <module>   s   