3
(h  ใ               @   s,   G d d de ZG dd de Zdd ZdS )c               @   s<   e Zd Zd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-install-q3hcpn_q/Django/django/contrib/auth/context_processors.pyฺ__init__   s    zPermLookupDict.__init__c             C   s   t | jj S )N)ฺstrr   Zget_all_permissions)r   r   r   r   ฺ__repr__	   s    zPermLookupDict.__repr__c             C   s   | j 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.)ฺ	TypeError)r   r   r   r   ฺ__iter__   s    zPermLookupDict.__iter__c             C   s   | j j| jS )N)r   Zhas_module_permsr   )r   r   r   r   ฺ__bool__   s    zPermLookupDict.__bool__c             C   s   t | j| S )N)ฺtyper   )r   r   r   r   ฺ__nonzero__   s    zPermLookupDict.__nonzero__N)	ฺ__name__ฺ
__module__ฺ__qualname__r   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 )N)r   )r   r   r   r   r   r      s    zPermWrapper.__init__c             C   s   t | j|S )N)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 |j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ษ
    Returns context variables required by apps that use Django's authentication
    system.

    If there is no 'user' attribute in the request, uses AnonymousUser (from
    django.contrib.auth).
    r   ้    )ฺAnonymousUser)r   Zperms)ฺhasattrr   Zdjango.contrib.auth.modelsr   r   )ฺrequestr   r   r   r   r   ฺauth1   s    
r   N)ฺobjectr   r   r   r   r   r   r   ฺ<module>   s   