Ńň
3Nc           @@  sŐ   d  d k  l Z d  d k l Z d  d k l Z d  d k l Z d  d k	 l
 Z
 d  d k l Z l Z d  d k l Z d e f d	     YZ d
 e f d     YZ d  d k l Z d e f d     YZ d   Z d S(   i    (   t   absolute_import(   t   AuthTktCookiePlugin(   t   FriendlyFormPlugin(   t
   setup_auth(   t   Element(   t   NoResultFoundt   MultipleResultsFound(   t   customt   BazAuthenticatorPluginc           B@  s   e  Z d    Z RS(   c      	   C@  s    y | d } | d } Wn t  j
 o d  SXy t i d |  } Wn' t j
 o d  St j
 o d  SXd | j o | d i   | j o | Sd  Sd  S(   Nt   logint   passwordt   usernameu   password(   t   KeyErrort   NoneR   t   getR   R   t   render(   t   selft   environt   identityR	   R
   t   e(    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   authenticate   s    
$(   t   __name__t
   __module__R   (    (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyR      s   t   BazMetadataProviderc           B@  s   e  Z d    Z RS(   c         C@  sF   | i  d  } t i  d |  } | i h | d 6 d   | d <d  S(   Ns   repoze.who.useridR   t   elementc         S@  s   t  i |   S(    (   R   t   is_omniscient(   R   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   <lambda>(   s    s   bazjunk.catch_errors(   R   R   t   update(   R   R   R   t   useridR   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   add_metadata#   s    (   R   R   R   (    (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyR   !   s   (   t   BaseSourceAdaptert   BazGroupSourceAdapterc           B@  s>   e  Z d    Z d   Z d   Z d   Z d   Z d   Z RS(   c         C@  s   t  t |   i d t  d  S(   Nt   writable(   t   superR   t   __init__t   False(   R   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyR"   .   s    c         C@  s.   g  } t  i   i   D] } | | i q ~ S(   N(   R   t   getRoott   getNonleavest   ename(   R   t   _[1]R   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   _get_all_sections1   s    c         C@  sV   g  } t  i |  i   D]5 } d | j o" | i   o | | d i   q q ~ S(   Nu   username(   R   R   t   getDescendantst   hasChildrenR   (   R   t   sectionR'   R   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   _get_section_items4   s    c         C@  s<   | d } t  i d |  } t d   | i   D  } | S(   Ns   repoze.what.useridR   c         s@  s   x |  ] } | i  Vq Wd  S(   N(   R&   (   t   .0t   a(    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pys	   <genexpr><   s   	 (   R   R   t   sett   getAncestors(   R   t   credentialsR   R   t   retset(    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   _find_sections9   s    
c         C@  sI   y% t  i t  } t  i d |  } Wn t j
 o t SX| i |  S(   NR   (   R   R   t   SectionR   R#   t   isAncestorOf(   R   R+   t   itemR.   R   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   _item_is_included?   s    c         C@  s4   y t  i |  } Wn t j
 o t SX| i   S(   N(   R   R   t   NoResultsFoundR#   R*   (   R   R+   R   (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   _section_existsG   s
    (   R   R   R"   R(   R,   R3   R7   R9   (    (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyR   ,   s   					c         C@  s  t  | i i d d  | i i d d  | i i d d   | i i d d  | i i d d   d	 | i i d
 d   d d } | i i d  } | d  j	 p
 t |  t |  } t |  h t   d 6h  d d t   f g d d | f d | f g d d | f g d d t	   f g } | S(   Nt	   login_urls   /logint   login_handlers   /login_handlert   post_login_urlt   logout_handlers   /logout_handlert   post_logout_urlt   login_counter_names   baz_auth.login_counter_namet   rememberer_namet   cookiet   cookie_secrett   baz_autht   authenticatorst   bazautht   identifierst   main_identifierst   challengerst   formt   mdproviderst   baz_md(
   R   RC   R   R   t   AssertionErrorR   t   repoze_setup_authR   R   R   (   t   appt   app_confRI   RB   RA   t
   middleware(    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyR   N   s*    				N(   t
   __future__R    t   repoze.who.plugins.auth_tktR   t   repoze.who.plugins.friendlyformR   t   repoze.what.middlewareR   RM   t   bazbase.modelR   t   bazbaseR   R   R   t   objectR   R   t   repoze.what.adaptersR   R   (    (    (    s:   /afs/sipb.mit.edu/project/bazki/Checkout/lib/bazki/auth.pyt   <module>   s   	"