§ Rl¾j» ã óÆ — d Z ddlZddlZddlZddlmZ ddlmZ ej e ¦ « Z dZ ddlZn # e $ r dZY nw xY wd„ Zd„ Zd „ Zd „ Zd„ Zd„ Zd „ Zd„ Zd„ Zd„ Zd„ ZdS )uË Thin Python wrapper around the _lvdmap C extension (backed by liblve). Public interface is unchanged — callers (lveapi.py, lvectllib.py) continue to import and use these functions exactly as before. é Né )Údomain_lve_sentry_extra)ÚLvdErrorz/etc/container/lvd_idsc ó2 — t €t d¦ « ‚d S )Nz$_lvdmap C extension is not installed)Ú_lvdmapr © ó úS/opt/cloudlinux/venv/lib64/python3.11/site-packages/websiteisolation/id_registry.pyÚ_require_lvdmapr s € Ý€ÝÐ=Ñ>Ô>Ð>ð €r c ó — t j | ¦ « j }n# t $ r Y dS w xY wt j t t |¦ « ¦ « }t j |¦ « sdS |S )zmReturn the registry file path for *username*, or None if the user does not exist or has no registry file.N) ÚpwdÚgetpwnamÚpw_uidÚKeyErrorÚosÚpathÚjoinÚLVD_IDS_DIRÚstrÚexists)ÚusernameÚuidr s r Úregistry_path_by_usernamer " sx € ðÝŒl˜8Ñ$Ô$Ô+ˆˆøÝð ð ð Øˆtˆtðøøøå Œ7�<Š<�¥S¨¡X¤XÑ.Ô.€DÝ Œ7�>Š>˜$ÑÔð ØˆtØ€Ks ‚ œ *©*c óÒ — t j ¦ « dk rt d¦ « ‚t ¦ « t j | |¦ « }t d||| ¦ « |S )zzAssign a domain ID for a docroot. Returns existing ID if already assigned, otherwise allocates the next sequential ID.r ú"domain ID assignment requires rootz0assigned domain_id %d to docroot '%s' for uid %d)r Úgeteuidr r r ÚassignÚlogÚinfo)r ÚdocrootÚ domain_ids r Úassign_domain_idr" / sg € õ „z�|„|�qÒÐÝÐ;Ñ<Ô<Ð<ÝÑÔÐÝ”˜s GÑ,Ô,€I݇H‚HÐ ?Ø ˜ ñ&ô