mò #á¸Ec@sÂdZdkZdkZdkZeeieidd„eee dƒƒƒZ ei di e ƒde e ƒƒZ eie d„ZgZdfd„ƒYZhZeiZd d „ZdS( sIPermissions $Id: Permission.py 40218 2005-11-18 14:39:19Z andreasjung $ Nt_cCs ||jS(N(tctan(RR((t7/data/zmath/zope/lib/python/AccessControl/Permission.pytsitcCsd|||ƒdS(NRt _Permission(t translatetnamet name_trans(RRR ((Rtpnamest PermissioncBsDtZdd„Zed„Zd„Zd„Zd„Zd„Z RS(NcCsb||_dti|tƒd|_||_t|dƒo |i }n||_||_ dS(NRRtaq_base( RtselftstringRR t_ptdatathasattrtobjR tdefault(R RRRR((Rt__init__#s    cCs¦|i}|i}t||ƒot||ƒSn|}xÞ|iD]Ó}|oŠt||ƒovt||ƒ}t|dƒoS|i }t|dƒo6|i }|d}|i |ƒo||}PqÎqÒqÖqqCt|dƒo,|i }|i dƒo|d}PqqCqCW|oNy<d|jot |ƒSnt|ƒ}|idƒ|SWqogSqoXn|djoddgSn|tjo dgSn|S(Ntim_selft__dict__t __roles__tSharedtManagert Anonymous(R RRRRtgetattrRtrolesRtattrRRthas_keyttupletlisttremovetNonet_marker(R RRRRR((RtgetRoles+sJ                cCsÐ|i}t|tƒo3| o+t||iƒot||iƒq_nt||i|ƒxj|i D]_}|djo |}nt ||ƒ}y |` WnnXyt||dƒWqiqiXqiWdS(NRR(R Rt isinstanceRR RRtdelattrtsetattrRRRRR(R RRRR((RtsetRolesSs$    cCsÀ|iƒ}||joY|odSnt|tƒo|i|ƒq¯t|ƒ}|i|ƒt|ƒ}n>|pdSn/t|tƒo|i |ƒn||f}|i |ƒdS(N( R R$RtroletpresentR%R R!RtappendR((R R)R*R((RtsetRolecs     cCsdS(Ni((R ((Rt__len__rscCs|iS(N(R R(R ((Rt__str__ss( t__name__t __module__R"RR#R$R(R,R-R.(((RR s   (   RcCsÁxº|D]²}t|dƒoqnt|ƒdjo|\}}|}n|\}}}dt|( R#R8RR>R R<R9R R R3((Rt?s%Y