
    _vg                        d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZ dddd	ddd
ddgdddej        ddZ ee          Zd Zd Z e             d Z e              ee          d             ZdS )    N)settings)get_user_model)FieldDoesNotExistImproperlyConfigured)setting_changed)receiversesameFTpkzsesame.tokens_v2zsesame.tokens_v1 
   i'  )
TOKEN_NAMEMAX_AGEONE_TIMEINVALIDATE_ON_PASSWORD_CHANGEINVALIDATE_ON_EMAIL_CHANGEPACKERPRIMARY_KEY_FIELDTOKENSKEYSIGNATURE_SIZESALTDIGEST
ITERATIONSc           	         t          j        d                    t          |           t          |          t          dndt
          t
          ndt          g                                          d                                          S )a  
    Make a 64-bytes key from Django's ``secret_key`` and django-sesame's ``key``.

    Include settings in the key to invalidate tokens when these settings change.
    This ensures that tokens generated with one packer cannot be misinterpreted
    by another packer, for example.

    |Nmax_ager   s   sesame.settings)person)	hashlibblake2bjoinstrr   r   r   encodedigest)
secret_keykeys     L/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/sesame/settings.py
derive_keyr'   (   s{     ? JC$0		b ,"!		
 	
 &((!   fhh    c            
         t           j        t                   } t                                          D ]-\  }}t          | |t          t          d|z   |                     .t          t          t          j                  rt                                          a	d t          D             at          t          j        t                     at"          gd t          t          dg           D             z   ad S )NSESAME_c                 6    g | ]}t          j        |          S  )	importlibimport_module).0tokenss     r&   
<listcomp>zload.<locals>.<listcomp>R   s#    CCC&i%f--CCCr(   c                 8    g | ]}t          |t                    S r,   )r'   r   )r/   r$   s     r&   r1   zload.<locals>.<listcomp>V   s2     ) ) ) 	:s##) ) )r(   SECRET_KEY_FALLBACKS)sysmodules__name__DEFAULTSitemssetattrgetattrr   
isinstancer   datetime	timedeltatotal_secondsr   r'   
SECRET_KEYr   SIGNING_KEYVERIFICATION_KEYS)modulenamedefaults      r&   loadrE   F   s    ["F!)) L Lggh	D0@'JJKKKK
 '8-.. *'')) DCFCCCF X0#66K$ ) )!(,BBGG) ) ) r(   c                     t           t          st          d          t          rZt	                      } 	 | j                            |                                            d S # t          $ r t          d          w xY wd S )Nzminsecure configuration: set SESAME_MAX_AGE to a low value or set SESAME_INVALIDATE_ON_PASSWORD_CHANGE to Truezginvalid configuration: set User.EMAIL_FIELD correctly or set SESAME_INVALIDATE_ON_EMAIL_CHANGE to False)	r   r   r   r   r   _meta	get_fieldget_email_field_namer   )Users    r&   checkrK   h   s    <"B
 
 	
 " 	J  !:!:!<!<=====  	 	 	&D  		 s   ,A" "A<c                 8   |                      d          s|                      d          rt                       | dv rddlm} |                                |_        | dv r:ddlm} |                                |_        |	                                |_
        d S d S )Nr?   r*   )AUTH_USER_MODELSESAME_PACKERSESAME_PRIMARY_KEY_FIELD   )packers)SESAME_SALTSESAME_MAX_AGE)	tokens_v1)
startswithrE   r   rQ   
get_packerpackerrT   
get_signersignerget_token_retoken_re)settingkwargsrQ   rT   s       r&   reloadr^      s    ,'' 7+=+=i+H+H RRR ++--333$//11	&3355		 43r(   )r<   r   r-   r4   django.confr   django.contrib.authr   django.core.exceptionsr   r   django.core.signalsr   django.dispatchr   md5r7   list__all__r'   rE   rK   r^   r,   r(   r&   <module>rg      sQ         



             . . . . . . J J J J J J J J / / / / / / $ $ $ $ $ $ %)"'!#56 k- 2 $x..  <  ,   (  
/6 6 6 6 6r(   