ó
Aü½cc           @   sØ   d  Z  d d l Z d d l Z d d l Z d d l Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 d d l m
 Z
 d d l Td d	 l m Z e
 j Z e
 j e j ƒ d
 „  Z d „  Z d „  Z d S(   si   Produce subscriber roster, using listinfo form data, roster.html template.

Takes listname in PATH_INFO.
iÿÿÿÿN(   t   mm_cfg(   t   Utils(   t   MailList(   t   Errors(   t   i18n(   t   *(   t   syslogc          C   sr  t  j ƒ  }  |  s& t t d ƒ ƒ d  S|  d j ƒ  } y t j | d d ƒ} WnN t j k
 rŸ } t  j | ƒ } d GHt t d ƒ ƒ t	 d d | | ƒ d  SXt
 j ƒ  } y | j d ƒ } Wnp t k
 r1t ƒ  } | j t j ƒ | j t d	 t d
 ƒ ƒ ƒ | j t t d ƒ ƒ ƒ d GH| j ƒ  GHd  SXt  j | ƒ sM| j } n  t j | ƒ | j d d ƒ j ƒ  } | j d d ƒ j ƒ  }	 | j t j f | |	 ƒ oÇ| j t j t j t j f | ƒ }
 | j d k râd } nc | j d k r!| j t j t j t j t j f | |	 ƒ } n$ | j t j t j t j f | ƒ } | sí| j  } t ƒ  } | j | ƒ d GHt! | t d ƒ ƒ | j | j" ƒ  ƒ | j ƒ  GHt# j$ j% d t# j$ j% d t# j$ j% d d ƒ ƒ ƒ } t	 d d |	 | | ƒ d  St& ƒ  } | j | ƒ | j' | |
 ƒ } | j( d d t d ƒ ƒ| d <| j) d ƒ | d <| j | j* d | | ƒ ƒ | j ƒ  GHd  S(    Ns   Invalid options to CGI scripti    t   locks   Status: 404 Not Founds&   No such list <em>%(safelistname)s</em>t   errors   roster: No such list "%s": %st   languagei   t   Errors   Invalid options to CGI script.s   Status: 400 Bad Requests	   roster-pwt    s   roster-emaili   s   Status: 401 Unauthorizeds*   %(realname)s roster authentication failed.t   HTTP_FORWARDED_FORt   HTTP_X_FORWARDED_FORt   REMOTE_ADDRs   unidentified origint   securitys:   Authorization failed (roster): user=%s: list=%s: remote=%ss   displang-buttont   texts   View this page ins   <mm-displang-box>t   rosters   <mm-lang-form-start>s   roster.html(+   R   t   GetPathPiecest
   error_paget   _t   lowerR   R   t   MMListErrort   websafeR   t   cgit   FieldStoraget   getfirstt	   TypeErrort   Documentt   set_languageR    t   DEFAULT_SERVER_LANGUAGEt   AddItemt   Headert   Boldt   Formatt
   IsLanguaget   preferred_languageR   t   stript   WebAuthenticatet   AuthUsert   AuthListModeratort   AuthListAdmint   AuthSiteAdmint   private_rostert	   real_namet   error_page_doct   GetMailmanFootert   ost   environt   gett   HeadlessDocumentt   GetAllReplacementst   FormatButtont   FormatFormStartt	   ParseTags(   t   partst   listnamet   mlistt   et   safelistnamet   cgidatat   langt   doct   passwordt   addrt   list_hiddent   okt   realnamet   remotet   replacements(    (    s1   /export/web/mailman/mailman/Mailman/Cgi/roster.pyt   main-   s    										c         C   s5   t  ƒ  } | j t j ƒ t | |  ƒ | j ƒ  GHd  S(   N(   R   R   R    R   R-   R"   (   t   errmsgR>   (    (    s1   /export/web/mailman/mailman/Mailman/Cgi/roster.pyR      s    	c         C   sF   |  j  t d ƒ ƒ |  j t d t d ƒ ƒ ƒ |  j t | ƒ ƒ d  S(   NR
   i   (   t   SetTitleR   R   R    R!   (   R>   RG   (    (    s1   /export/web/mailman/mailman/Mailman/Cgi/roster.pyR-   —   s    (   t   __doc__t   sysR/   R   t   urllibt   MailmanR    R   R   R   R   t   Mailman.htmlformatt   Mailman.Logging.SyslogR   R   R   R   RF   R   R-   (    (    (    s1   /export/web/mailman/mailman/Mailman/Cgi/roster.pyt   <module>   s    
		c	