Viewing File: /usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyc


)hc@sdZddlZddlmZddlmZddlmZddlmZddlmZdZ	d	Z
d
ejfdYZdS(s
Old style Mailman membership adaptor.

This adaptor gets and sets member information on the MailList object given to
the constructor.  It also equates member keys and lower-cased email addresses,
i.e. KEY is LCE.

This is the adaptor used by default in Mailman 2.1.
iN(t
StringType(tmm_cfg(tUtils(tErrors(t
MemberAdaptoriitOldStyleMembershipscBs=eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZejejejejfdZdZdZdZdZddZdZdZ dZ!dZ"dZ#dZ$dZ%RS( cCs
||_dS(N(t_OldStyleMemberships__mlist(tselftmlist((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt__init__/scCs |jjj|jjjS(N(Rtmemberstkeystdigest_members(R((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt
getMembers5scCs|jjjS(N(RR
R(R((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetRegularMemberKeys8scCs|jjjS(N(RRR(R((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetDigestMemberKeys;scCs|j}g}|jjj||}||k	r\t|trO|tfS|tfSn|jjj||}||k	rt|tr|tfS|tfSndS(N(NN(
tlowerRR
tgett
isinstanceRt	ISREGULARRtISDIGESTtNone(Rtmembertlcmembertmissingtval((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt__get_cp_member>s



cCs)|j|\}}|dk	r%dSdS(Nii(t#_OldStyleMemberships__get_cp_memberR(RRtcpaddrtwhere((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytisMemberOscCs:|j|\}}|dkr0tj|n|jS(N(RRRtNotAMemberErrorR(RRRR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberKeyUscCs4|j|\}}|dkr0tj|n|S(N(RRRR(RRRR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberCPAddress[scCs$g|D]}|j|d^qS(Ni(R(RR
R((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberCPAddressesascCs:|jjj|j}|dkr6tj|n|S(N(Rt	passwordsRRRRR(RRtsecret((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberPassworddscCs#|j|}||kr|SdS(Ni(R%(RRtresponseR$((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytauthenticateMemberjscCs"|j|stj|ndS(N(RRR(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt__assertIsMemberpscCsG|jjj|j|jj}||jjkr=|S|jjS(N(RtlanguageRRtpreferred_languagetGetAvailableLanguages(RRtlang((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberLanguagets
cCsc|j||tjkr;|j|\}}|tkS|jjj|jd}||@S(Ni(	t$_OldStyleMemberships__assertIsMemberRtDigestsRRRtuser_optionsRR(RRtflagRRtoption((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberOption{s

cCs&|j||jjj|jS(N(R.Rt	usernamesRR(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt
getMemberNames
cCs)|j||jjj|jgS(N(R.Rttopics_userinterestRR(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetMemberTopicss
cCs6|j||jjj|jtjdfdS(Ni(R.Rtdelivery_statusRRRtENABLED(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetDeliveryStatuss
	cCs6|j||jjj|jtjdfdS(Nii(R.RR8RRRR9(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetDeliveryStatusChangeTimes
	cCs2g|jD]!}|j||kr
|^q
S(N(R
R:(RtstatusR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetDeliveryStatusMembersscCs)g|jjjD]}|j^qS(N(Rtbounce_infoRR(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytgetBouncingMembersscCs&|j||jjj|jS(N(R.RR>RR(RR((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt
getBounceInfos
cKs|jjst|j|r3tj|nd}tj}|jj}d}|j
drz|d}|d=n|j
dr|d}|d=n|j
dr|d}|d=n|j
dr|d}|d=n|rt|jntj
||jkrd}n|}|j}|rJ||jj|<n||jj|<|j|||j|||r|j||n|jjr|jj|jj|<ndS(NitdigesttpasswordR)trealname(RtLockedtAssertionErrorRRtMMAlreadyAMemberRtMakeRandomPasswordR*Rthas_keyt
ValueErrorRtLCDomainRRR
tsetMemberPasswordtsetMemberLanguaget
setMemberNametnew_member_optionsR0(RRtkwsRARBR)RCtvalue((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytaddNewMembersD







	c	Csn|jjst|j||j}x9d
D]1}t|j|}|j|r5||=q5q5WdS(NR#R0R
RR)R6R4R>R8(	s	passwordssuser_optionssmemberssdigest_membersslanguagestopics_userinterests	usernamessbounce_infosdelivery_status(RRDRER.RtgetattrRH(RRt	memberkeytattrtdict((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytremoveMembers

ic
CsX|jjst|j||j}|j|}|jjj|d}|j|t	j
}|jjj|tj
}|j|}	|jjj|jtjdf}
|s|j|n|j|d|d|d|d|	|r||jj|j<n|
dtjtjfkrT|rT|
|jj|j<ndS(NiRCRARBR)(RRDRER.RR5R0RR3RR/R#RRGR-R8RR9RVRQtBYUSERtBYADMIN(RRt
newaddresstnodeleteRStfullnametflagstdigestspRBR,tdelivery((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytchangeMemberAddresss(

cCs<|jjst|j|||jj|j<dS(N(RRDRER.R#R(RRSRB((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyRKs
cCs<|jjst|j|||jj|j<dS(N(RRDRER.R)R(RRSR)((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyRL
s
cCs|jjst|j||j}|tjkr|r|jjs[tj	n|jj
j|rtj|n|jj
j|}|dkrtj|n|jj
|=||jj
|<|jjj|r|jj|=qn|jjstjn|jj
j|r0tj|n|jj
j|}|dkr`tj|n|jj
|=||jj
|<||jj|<dS|jjj|d|r|jj|c|O<n|jj|c|M<|jj|s|jj|=ndS(Ni(RRDRER.RRR/t
digestableRtCantDigestErrorRRHtAlreadyReceivingDigestsR
RRRtone_last_digestt
nondigestabletMustDigestErrort!AlreadyReceivingRegularDeliveriesR0t
setdefault(RRR1RPRStcpuser((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytsetMemberOptionsB


cCs<|jjst|j|||jj|j<dS(N(RRDRER.R4R(RRRC((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyRMLs
cCsp|jjst|j||j}|rG||jj|<n%|jjj|rl|jj|=ndS(N(RRDRER.RR6RH(RRttopicsRS((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytsetMemberTopicsQs
cCs|tjtjtjtjtjfks0t|jjsEt|j	||j
}|tjkr|j|dn|t
j
f|jj|<dS(N(RR9tUNKNOWNRWRXtBYBOUNCERERRDR.Rt
setBounceInfoRttimeR8(RRR<((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pytsetDeliveryStatus[s
cCs|jjst|j||j}|dkr|jjj|r_|jj|=n|jjj|r|jj|=qn||jj|<dS(N(	RRDRER.RRR>RHR8(RRtinfo((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyRnhs
(&t__name__t
__module__R	R
RRRRR R!R"R%R'R.R-R3R5R7R:R;RRlRWRXRmR=R?R@RQRVR_RKRLRiRMRkRpRn(((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyR.sD																					/				:		
	
(t__doc__RottypesRtMailmanRRRRRRR(((sA/usr/local/cpanel/3rdparty/mailman/Mailman/OldStyleMemberships.pyt<module>s
Back to Directory File Manager