U
    Ha  ã                   @   s(   G d d„ dƒZ G dd„ dƒZdd„ ZdS )c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚPermLookupDictc                 C   s   || | _ | _d S ©N)ÚuserÚ	app_label)Úselfr   r   © r   úJ/tmp/pip-unpacked-wheel-3jxiddxt/django/contrib/auth/context_processors.pyÚ__init__   s    zPermLookupDict.__init__c                 C   s   t | j ¡ ƒS r   )Ústrr   Zget_all_permissions©r   r   r   r   Ú__repr__	   s    zPermLookupDict.__repr__c                 C   s   | j  d| j|f ¡S )Nz%s.%s)r   Zhas_permr   )r   Ú	perm_namer   r   r   Ú__getitem__   s    zPermLookupDict.__getitem__c                 C   s   t dƒ‚d S )NzPermLookupDict is not iterable.©Ú	TypeErrorr
   r   r   r   Ú__iter__   s    zPermLookupDict.__iter__c                 C   s   | j  | j¡S r   )r   Zhas_module_permsr   r
   r   r   r   Ú__bool__   s    zPermLookupDict.__bool__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   r   r   r   r      s
   r   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚPermWrapperc                 C   s
   || _ d S r   )r   )r   r   r   r   r   r      s    zPermWrapper.__init__c                 C   s   t | j|ƒS r   )r   r   )r   r   r   r   r   r      s    zPermWrapper.__getitem__c                 C   s   t dƒ‚d S )NzPermWrapper is not iterable.r   r
   r   r   r   r      s    zPermWrapper.__iter__c                 C   s0   d|krt | | ƒS | dd¡\}}| | | S )zE
        Lookup by "someapp" or "someapp.someperm" in perms.
        Ú.é   )ÚboolÚsplit)r   r   r   r   r   r   Ú__contains__#   s    zPermWrapper.__contains__N)r   r   r   r   r   r   r   r   r   r   r   r      s   r   c                 C   s2   t | dƒr| j}nddlm} |ƒ }|t|ƒdœS )zÇ
    Return context variables required by apps that use Django's authentication
    system.

    If there is no 'user' attribute in the request, use AnonymousUser (from
    django.contrib.auth).
    r   é    )ÚAnonymousUser)r   Zperms)Úhasattrr   Zdjango.contrib.auth.modelsr   r   )Úrequestr   r   r   r   r   Úauth.   s    
þr   N)r   r   r   r   r   r   r   Ú<module>   s   