o
    &zh                     @   s   d dl mZ d dlmZmZmZ dedefddZdedee defd	d
Z	dededefddZ
dedee defddZdS )    )List)ParseResult	parse_qslurlparse
parsed_urireturnc                 C   s   | j dko	| jdv S )Nhttp)z	127.0.0.1z::1)schemehostnamer    r   ^/var/www/html/kangema/venv/lib/python3.10/site-packages/allauth/idp/oidc/internal/clientkit.pyis_loopback   s   r   uriallowed_urisc                    s   t |  t fdd|D S )Nc                 3   s    | ]}t  |V  qd S )N)is_parsed_redirect_uri_allowed).0allowed_urir   r   r   	<genexpr>   s
    
z*is_redirect_uri_allowed.<locals>.<genexpr>)r   any)r   r   r   r   r   is_redirect_uri_allowed   s   r   r   c                 C   sj   t |}dD ]}t||t| |kr dS qt|s"|j| jkr"dS tt|jtt| js3dS dS )N)r	   r
   pathFT)r   getattrr   portsetr   queryissubset)r   r   parsed_allowed_urifieldr   r   r   r      s   r   originallowed_originsc                 C   s<   t | }|D ]}t |}|j|jkr|j|jkr dS qdS )NTF)r   r	   netloc)r   r    parsed_originallowed_originparsed_allowed_originr   r   r   is_origin_allowed#   s   r%   N)typingr   urllib.parser   r   r   boolr   strr   r   r%   r   r   r   r   <module>   s    