%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/mailman/Mailman/
Upload File :
Create Path :
Current File : //lib/mailman/Mailman/ListAdmin.pyc

�
��ac@s�dZddlZddlZddlZddlZddlZddlmZddlZddl	m
Z
ddlmZddl
mZddlmZddlmZdd	lmZdd
lmZddlmZddlmZdd
lmZddlmZejZdZdZdZdZdZ dZ!dZ"dZ#dZ$ye%e&fWne'k
rzdZ%dZ&nXdfd��YZ(d�Z)dS(sMixin class for MailList which handles administrative requests.

Two types of admin requests are currently supported: adding members to a
closed or semi-closed list, and moderated posts.

Pending subscriptions which are requiring a user's confirmation are handled
elsewhere.
i����N(tStringIO(tMIMEMessage(t	Generator(tgetaddresses(tmm_cfg(tUtils(tMessage(tErrors(tUserDesc(tget_switchboard(tsyslog(ti18niiiit-s
t	ListAdmincBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zddddd
�Zid�Zd�Zd�Zd�Zd�Zd�Zddd�Zd�ZRS(cCs
d|_dS(Ni(tnext_request_id(tself((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytInitVarsHscCs+d|_tjj|j�d�|_dS(Nsrequest.pck(tNonet_ListAdmin__dbtostpathtjointfullpatht_ListAdmin__filename(R((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytInitTempVarsLs	cCs�|jdkr�|j�s!t�y7t|j�}ztj|�|_Wd|j�XWq�t	k
r�}|j
t
jkr��ni|_tt
jf|jd<q�XndS(Ntversion(RRtLockedtAssertionErrortopenRtcPickletloadtclosetIOErrorterrnotENOENTtIGNRtREQUESTS_FILE_SCHEMA_VERSION(Rtfpte((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__opendbPs	cCs�|jdk	r�|j�s!t�ttjf|jd<|jd}tj	d�}zXt
|d�}z7tj|j|d�|j
�tj|j��Wd|j�XWdtj	|�Xd|_tj||j�ndS(NRs.tmpitwi(RRRRR#RR$RRtumaskRRtdumptflushtfsynctfilenoRtrename(RttmpfiletomaskR%((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt	__closedb_s

	cCsQ|j�st�x8trL|j}|jd7_|jj|�sPqqW|S(Ni(RRtTrueRRthas_key(Rtnext((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__nextidws		cCs|j�dS(N(t_ListAdmin__closedb(R((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytSaveRequestsDb�scCs|j�t|j�dS(Ni(t_ListAdmin__opendbtlenR(R((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytNumRequestsPending�s
cCsR|j�g|jj�D]$\}\}}||kr|^q}|j�|S(N(R8Rtitemstsort(Rtrtypetktoptdatatids((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__getmsgids�s
:
cCs
|jt�S(N(t_ListAdmin__getmsgidstHELDMSG(R((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytGetHeldMessageIds�scCs
|jt�S(N(RCtSUBSCRIPTION(R((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytGetSubscriptionIds�scCs
|jt�S(N(RCtUNSUBSCRIPTION(R((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytGetUnsubscriptionIds�scCs!|j�|j|\}}|S(N(R8R(RtidttypeR@((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt	GetRecord�s
cCs!|j�|j|\}}|S(N(R8R(RRJRKR@((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt
GetRecordType�s
c
Cs�|j�|j|\}}|tkrJ|j||||||�}	nK|tkrn|j|||�}	n'|tks�t�|j|||�}	|	t	kr�|j|=ndS(N(
R8RRDt_ListAdmin__handlepostRHt _ListAdmin__handleunsubscriptionRFRt_ListAdmin__handlesubscriptiontDEFER(
RRJtvaluetcommenttpreservetforwardtaddrR=R@tstatus((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt
HandleRequest�s
c
Csp|j�}|j�|j�}|j�}tjr@d}nd}d|j�||f}tjd�}z�t	tj
jtj|�d�}	z\tjr�t
j||	d�nt|	�}
|
j|d�|	j�tj|	j��Wd|	j�XWdtj|�X|jdtd��}|s;td	�}ntj�|||||f}t|f|j|<|S(
Ntpckttxtsheldmsg-%s-%d.%siR(itsubjects(no subject)s	<missing>(tcopyR8t_ListAdmin__nextidt
get_senderRtHOLD_MESSAGES_AS_PICKLESt
internal_nameRR)RRRtDATA_DIRRR*RtflattenR+R,R-Rtgett_ttimeRDR(
RtmsgtreasontmsgdataRJtsendertexttfilenameR0R%tgt
msgsubjectR@((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytHoldMessage�s4
		!	
c#Cs|\}}}	}
}}tjjtj|�}
|rHtjj|
�djt�}d|d<tj|�}yt|
�}Wn,tk
r�}|j	t	j
kr��ntSXztj
|�}Wd|j�Xtjjtj|�}tjj|�\}}|d}t|d�}z t|�}|j|d�Wd|j�Xnd}d}d}t}|tjkrxt}no|tjkr_yt|
�}Wn,tk
r�}|j	t	j
kr��ntSXt|
�}d|d<d|d<y|d=Wntk
rnXtjjd	d�|d
<tdd|jd
d��ttj�}|j |d|�n�|tj!kr�d}|j"|�}tj#|	tj$|��}	|j%t&d�||p�t&d�d|�n|tj'ks�t(�d}|r*|r*yt|
�}Wn:tk
r?}|j	t	j
kr-�nt)j*|
��nXt+|g�}t,|�dkr�|d\}}|j"|�}n(g|D]\}}|^q�}|j-}t.j/�} t.j0|�z+t1j2||j3�t&d�d|�}!Wdt.j4| �X|!j5d�|!j6|�|!j7|�n|r�di|j8�d6|d6t9|�j:dd�d6t9|	�j:dd�d6}"|r�|"d|j:dd�7}"ntd|"�n|tkrytj;|
�Wqt<k
r�}|j	t	j
kr��ntSXn|S(Nitspamis.msgR(tapprovedt
adminapprovedtfilebaset	localtimesX-Mailman-Approved-Attvettes%held message approved, message-id: %ss
message-idsn/at	_metadatatRefuseds,Posting of your message titled "%(subject)s"s[No reason given]tlangt	DiscardedsForward of moderated messagesmessage/rfc822sL%(listname)s: %(rejection)s posting:
	From: %(sender)s
	Subject: %(subject)stlistnamet	rejectiont%s%%RiR[s

	Reason: (=RRRRRatsplittDASHRR R!R"tLOSTRRRtSPAM_DIRtsplitextRRbRtREMOVERQtAPPROVEtreadMessagetKeyErrortemailRt
formatdateR
RcR	tINQUEUE_DIRtenqueuetREJECTtgetMemberLanguagetonelinet
GetCharSett_ListAdmin__refuseRdtDISCARDRRtLostHeldMessageRR9tpreferred_languageRtget_translationtset_languageRtUserNotificationtGetBouncesEmailtset_translationtset_typetattachtsendR`tstrtreplacetunlinktOSError(#RtrecordRRRSRTRURVtptimeRiR[RgRkRhRtpartstspamfileR%R&RftoutpaththeadRjtoutfpRlRzRWtinqRwR\taddrstrealnametatotranstfmsgtnote((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__handlepost�s�

	


	
	




c
Cs/|j�|j�}tj�|||||f}t|f|j|<tdd|j�|�|jr+tj	|j
�|j}td�}	t
jdi|d6|j�d6|jd6|jdd	d
�d6d|�}
|j�}tj|||	|
|j
�}|j|id
d
6�tj	|�ndS(NRts%%s: held subscription request from %ss;New subscription request to list %(realname)s from %(addr)sssubauth.txttusernameRythostnametadmindbtabsoluteitadmindb_urltmlistttomoderators(R8R]ReRFRR
R`tadmin_immed_notifyRR�R�t	real_nameRdRtmaketextt	host_nametGetScriptURLt
GetOwnerEmailRR�R�(
RRVtfullnametpasswordtdigestRwRJR@R�R[ttextt	owneraddrRf((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytHoldSubscriptionrs.

				


	cCs|\}}}}}}	|tjkr+tS|tjkrVtdd|j�|�n�|tjkr�|jtd�||p�td�d|	�tdd|j�||p�d�ne|tjks�t	�y/t
|||||	�}
|j|
dd�Wntj
k
rnX|j�tS(	NRts*%s: discarded subscription request from %ssSubscription requests[No reason given]Rws5%s: rejected subscription request from %s
	Reason: %stwhencesvia admin approval(RRQR�R
R`R�R�Rdt	SUBSCRIBERRtApprovedAddMemberRtMMAlreadyAMemberR8R�(RR�RRRStstimeRVR�R�R�Rwtuserdesc((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__handlesubscription�s(	
cCs�|j�|j�}t|f|j|<tdd|j�|�|jr�|j}td�}t	j
di|d6|j�d6|jd6|jdd	d
�d6d|�}|j
�}tj|||||j�}|j|id
d
6�ndS(NRts'%s: held unsubscription request from %ss8New unsubscription request from %(realname)s by %(addr)ss
unsubauth.txtR�RyR�R�R�iR�R�R�(R8R]RHRR
R`R�R�RdRR�R�R�R�RR�R�R�(RRVRJR�R[R�R�Rf((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pytHoldUnsubscription�s(
				


	cCs�|}|tjkrtS|tjkrDtdd|j�|�n�|tjkr�|jtd�||�tdd|j�||p�d�n=|tjks�t	�y|j
|�Wntjk
r�nXt
S(NRts,%s: discarded unsubscription request from %ssUnsubscription requests7%s: rejected unsubscription request from %s
	Reason: %ss[No reason given](RRQR�R
R`R�R�RdtUNSUBSCRIBERtApprovedDeleteMemberRtNotAMemberErrorR�(RR�RRRSRV((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__handleunsubscription�s 	cCs|j}|dkr'|j|�}ntjdi|d6|d6|d6|j�d6d|d|�}tj�}tj|�zE|r�t	j
|dtd	�d
t|�g�}ntd�}	Wdtj
|�Xtj||j�|	||�}
|
j|�dS(Ns
refuse.txtRytrequestRgt	adminaddrRwR�s---------- sOriginal Messages ----------s-Request to mailing list %(realname)s rejected(R�RR�RR�R�RR�R�tNLRRdR�R�RR�R�(RR�trecipRStorigmsgRwR�R�R�R[Rf((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt__refuse�s.	

cCstjj|j�d�}yAt|�}ztj|�|_Wd|j�Xtj	|�Wn�t
k
r}|jtjkr��ntjj|j�d�}y4t|�}zt
j|�|_Wd|j�XWqt
k
r}|jtjkr��ni|_qXnXx�|jj�D]�\}}t|�dkrM|\}}nct|�dkr�|dd
krxt}nt}||f|j|<q nts�td|j��|tkrkt|�dkr�|\}}	}
}d	}|j}
nQt|�d
kr"|\}}	}
}}
d	}n!t|�dks td��q |||	||
||
ff|j|<q |tkr t|�d
kr�|\}}}}}i}n!t|�dks td��q |||||||ff|j|<q q W|j�dS(Ns
request.dbsrequest.pckiiiiisUnknown record format in %stis"Unknown subscription record layoutsUnknown held msg record layout(ii(RRRRRtmarshalRRRR�R R!R"RR;R9RFRDtFalseRRR�R6(RRkR%R&RJtxR?tinfotwhenRVtpasswdR�R�RwRiR[RgR�Rh((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt_UpdateRecordssf			N(t__name__t
__module__RRR8R6R]R7R:RCRERGRIRLRMRRXRnRNR�RPR�ROR�R�(((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyR
Gs.														2	�	+			cCs}tjj|�d}t|�}zI|dkrItj|tj�}n!|dks[t�tj	|�}Wd|j
�X|S(Nis.txts.pck(RRR�RR�tmessage_from_fileRRRRR(RRjR%Rf((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyR�Xs(*t__doc__RReR!RR�t	cStringIORR�temail.MIMEMessageRtemail.GeneratorRtemail.UtilsRtMailmanRRRRtMailman.UserDescRtMailman.Queue.sbcacheR	tMailman.Logging.SyslogR
RRdR#RDRFRHRQR�R~R}R�R2R�t	NameErrorR
R�(((s_/builddir/build/BUILDROOT/mailman-2.1.15-30.el7_9.2.x86_64/usr/lib/mailman/Mailman/ListAdmin.pyt<module>sJ	

��

Zerion Mini Shell 1.0