
    j                    ^    d dl mZ d dlZd dlmZ d dlmZmZ dZdZ	ddZ
ddZddZddZdS )    )annotationsN)uuid4)Requestsession	owner_key)zX-Multi-Rider-UserzX-Multi-Rider-Ownerrequestr   returnstrc                    | j                             dd                              d          d                                         p| j        pdS )NzX-Forwarded-For ,r   )headersgetsplitstripremote_addr)r   s    </home/longshao/multi-rider-rag/shared/ownership/ownership.py_owner_ip_from_requestr      sH    ?0"55;;C@@CIIKKhwObhfhh    c                0   t           D ]}t          | j                            |d          pd                                          }|sAt          j        dd|                                                              d          }|rd|d d          c S dS )Nr   z[^0-9A-Za-z_.@-]+_zaccount:`   )OWNER_HEADER_NAMESr
   r   r   r   resublower)r   header_name	raw_value
normalizeds       r   _stable_owner_from_requestr       s    ) 0 0++K<<BCCIIKK	 	V0#y7H7HIIOOPSTT
 	0/j"o/////	02r   tuple[str, str]c                   t          |           }t          |           }|r<t          j        t                    |k    r|t          t          <   dt          _        ||fS t          t          j        t                    pd                                          }|s.t                      j	        }|t          t          <   dt          _        ||fS )NTr   )
r   r    r   r   OWNER_SESSION_KEYmodifiedr
   r   r   hex)r   owner_ipstable_owner_keyr   s       r   get_request_ownerr(      s    %g..H1':: *;())-===)9G%&#G))GK 1228b99??AAI  GGK	%.!"hr   jobdict | Noner&   boolc                :   | sdS t          |                     d          pd                                          }|rt          |          o||k    S t          |                     d          pd                                          }t          |          o||k    S )NFr   r   r&   )r
   r   r   r+   )r)   r   r&   stored_owner_keystored_owner_ips        r   job_matches_ownerr/   .   s     u377;//5266<<>> AI@#3y#@@#''*--344::<<O>>9o99r   )r   r   r	   r
   )r   r   r	   r!   )r)   r*   r   r
   r&   r
   r	   r+   )
__future__r   r   uuidr   flaskr   r   r#   r   r   r    r(   r/    r   r   <module>r4      s    " " " " " " 				       " " " " " " " "   B i i i i      $	: 	: 	: 	: 	: 	:r   