
    7 f                     d    d dl 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j	                  Z
dS )    N)forms)signing)ValidationError	force_strc                   v     e Zd ZdZdZ ej        dej                  Z fdZ	d Z
d Zed             Z xZS )	SignedDataForma  Helper form that wraps a form to validate its contents on post.

    class PanelForm(forms.Form):
        # fields

    On render:
        form = SignedDataForm(initial=PanelForm(initial=data).initial)

    On POST:
        signed_form = SignedDataForm(request.POST)
        if signed_form.is_valid():
            panel_form = PanelForm(signed_form.verified_data)
            if panel_form.is_valid():
                # Success
    django_debug_toolbarT)requiredwidgetc                     |                     dd           }|rd|                     |          i} t                      j        |d|i| d S )Ninitialsigned)popsignsuper__init__)selfargskwargsr   	__class__s       I/var/www/equiseq/venv/lib/python3.11/site-packages/debug_toolbar/forms.pyr   zSignedDataForm.__init__   s[    **Y-- 	57!3!34G$::6:::::    c                     	 t          j        t          j        | j                                      | j        d                             }|S # t          j        $ r}t          d          |d }~ww xY w)Nsaltr   zBad signature)	jsonloadsr   Signerr   unsigncleaned_dataBadSignaturer   )r   verifiedexcs      r   clean_signedzSignedDataForm.clean_signed#   sy    	<zDI...55d6G6QRR H O# 	< 	< 	<!/22;	<s   AA A2A--A2c                 D    |                                  o| j        d         S )Nr   )is_validr!   )r   s    r   verified_datazSignedDataForm.verified_data,   s    }}>4#4X#>>r   c                     t          j        | j                                      t	          j        d |                                D                                 S )Nr   c                 4    i | ]\  }}|t          |          S  r   ).0keyvalues      r   
<dictcomp>z'SignedDataForm.sign.<locals>.<dictcomp>2   s&    MMM*#uYu--MMMr   )r   r   r   r   r   dumpsitems)clsdatas     r   r   zSignedDataForm.sign/   sM    ~38,,,11JMM

MMMNN
 
 	
r   )__name__
__module____qualname____doc__r   r   	CharFieldHiddenInputr   r   r%   r(   classmethodr   __classcell__)r   s   @r   r	   r	   	   s           "DU_d53DEEEF; ; ; ; ;< < <? ? ? 
 
 [
 
 
 
 
r   r	   )r   djangor   django.corer   django.core.exceptionsr   django.utils.encodingr   Formr	   r+   r   r   <module>rA      s                 2 2 2 2 2 2 + + + + + +*
 *
 *
 *
 *
UZ *
 *
 *
 *
 *
r   