o
    ~¨Êhá	  ã                   @   s�   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
mZ d dlmZ e
rFd dlmZ eG dd	„ d	ejƒƒZeG d
d„ dejƒƒZdS dS )é    )Úunicode_literals)Úmodels)Úpython_2_unicode_compatible)Úugettext_lazy)Ú	USE_GNUPGÚ
GNUPG_HOME©Úaddresses_for_key)ÚGPGc                       s\   e Zd ZdZG dd„ dƒZe ¡ Zejdd�Zej	de
dƒd�Zdd	„ Z‡ fd
d„Z‡  ZS )ÚKeyza
        Accepts a key and imports it via admin's save_model which
        omits saving.
        c                   @   ó   e Zd ZedƒZedƒZdS )zKey.Metar   ÚKeysN©Ú__name__Ú
__module__Ú__qualname__Ú_Úverbose_nameÚverbose_name_plural© r   r   úE/var/www/html/env/lib/python3.10/site-packages/email_extras/models.pyÚMeta   ó    r   F)ÚeditablezaIf True, an '.asc' extension will be added to email attachments sent to the address for this key.)ÚdefaultÚ	help_textc                 C   ó   | j S ©N)Ú	addresses©Úselfr   r   r   Ú__str__   ó   zKey.__str__c           	         sˆ   t t| ƒj|i |¤Ž ttd�}| | j¡}g }|jD ]
}| t	||ƒ¡ qd 
|¡| _|D ]}tjj|d�\}}| j|_| ¡  q.d S )N©Ú	gnupghomeú,©Úaddress)Úsuperr   Úsaver
   r   Úimport_keysÚkeyÚresultsÚextendr	   Újoinr   ÚAddressÚobjectsÚget_or_createÚuse_asc)	r    ÚargsÚkwargsÚgpgÚresultr   r+   r'   r   ©Ú	__class__r   r   r)   "   s   


ýzKey.save)r   r   r   Ú__doc__r   r   Ú	TextFieldr+   r   ÚBooleanFieldr   r2   r!   r)   Ú__classcell__r   r   r7   r   r      s    r   c                       sP   e Zd ZdZG dd„ dƒZejdd�Zejddd�Z	dd	„ Z
‡ fd
d„Z‡  ZS )r/   za
        Stores the address for a successfully imported key and allows
        deletion.
        c                   @   r   )zAddress.Metar/   Ú	AddressesNr   r   r   r   r   r   6   r   r   éÈ   )Ú
max_lengthF)r   r   c                 C   r   r   r&   r   r   r   r   r!   =   r"   zAddress.__str__c                    sd   ddl m} ttd�}| ¡ D ]}| j|||ƒv r(| |d d¡ | |d ¡ qtt| ƒ 	¡  dS )z;
            Remove any keys for this address.
            r   r   r#   ÚfingerprintTN)
Úemail_extras.utilsr	   r
   r   Ú	list_keysr'   Údelete_keysr(   r/   Údelete)r    r	   r5   r+   r7   r   r   rD   @   s   
€zAddress.delete)r   r   r   r9   r   r   Ú	CharFieldr'   r;   r2   r!   rD   r<   r   r   r7   r   r/   /   s    r/   N)Ú
__future__r   Ú	django.dbr   Údjango.utils.encodingr   Údjango.utils.translationr   r   Úemail_extras.settingsr   r   rA   r	   Úgnupgr
   ÚModelr   r/   r   r   r   r   Ú<module>   s    Û