U nÃf4ã@sbddlZdddddœZddd d d d d dddddddddddddœZdddddœZGd d!„d!ƒZdS)"éNllll )ÚUIDÚGIDÚALLÚCLUSTERl@l€llllll@llllll l@l€lll)ZVMZHOSTZNETZIMAGEÚUSERÚTEMPLATEZGROUPZ DATASTORErZDOCUMENTZZONEZSECGROUPZVDCZVROUTERZ MARKETPLACEZMARKETPLACEAPPZVMGROUPZ VNTEMPLATEZ BACKUPJOBéééé)ZUSEZMANAGEZADMINZCREATEc@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚOneAclcCst| |¡ƒS©N©ÚhexÚ calculate_ids)ÚselfZusers©rú7/opt/hc_python/lib/python3.8/site-packages/pyone/acl.pyÚ parse_usersYszOneAcl.parse_userscCsŠd}| d¡}t|ƒdkr.td d |¡¡ƒ‚|d d¡}|D].}| ¡tkr^td |¡ƒ‚|t| ¡7}q@|| |d¡7}t|ƒS)Nrú/r zResource '{}' malformedú+zResource '{}' does not existr) ÚsplitÚlenÚ ExceptionÚformatÚjoinÚupperÚ RESOURCESrr)rÚ resourcesÚretÚresÚresourcerrrÚparse_resourcesas   zOneAcl.parse_resourcescCsJd}| d¡}|D].}| ¡tkr0td |¡ƒ‚|t| ¡7}qt|ƒS)NrrzRight '{}' does not exist)rrÚRIGHTSrrr)rZrightsrÚrightrrrÚ parse_rightsxs  zOneAcl.parse_rightscCst| |¡ƒSr r)rÚzonerrrÚ parse_zone‰szOneAcl.parse_zonecCs¼g}| d¡}t|ƒdkr.t|ƒdkr.tdƒ‚| | |d¡¡| | |d¡¡| | |d¡¡t|ƒdkrŒ|d|d|dfS| | |d¡¡|d|d|d|dfS)Nú ér zEString needs three or four components: User, Resource, Rights [,Zone]rrr )rrrÚappendrr"r%r')rZrule_strrrrrÚ parse_rule‘s  zOneAcl.parse_rulecCs®t d|¡std |¡ƒ‚d}|ddkrFtd}t|dd…ƒ|}|ddkrntd}t|dd…ƒ|}|dd kr‚td }|dd krªtd }t|dd…ƒ|}|S) Nz^([\#@\%]\d+|\*)$zID string '{}' malformedrú#rrú@rÚ*rú%r)ÚreÚmatchrrÚUSERSÚint)rZid_strZ users_valueÚvaluerrrrªs     zOneAcl.calculate_idsN) Ú__name__Ú __module__Ú __qualname__rr"r%r'r+rrrrrr Ss r )r0r2rr#r rrrrÚ,s>üíü