buھZddlZddlZddlZdZGddeZGddeZdS)Nz Eli CarterceZdZdS)HtpasswdDoesNotExistsN)__name__ __module__ __qualname__/builddir/build/BUILDROOT/lve-stats-4.3.2-1.el9.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/lvestats/lib/commons/htpasswd.pyrrsDr rc2eZdZdZd dZdZdZdZdZdS) HtpasswdFilez2 A class for manipulating htpasswd files. Fcg|_||_|sQtj|jr|dSt |jddS)Nz does not exist)entriesfilenameospathexistsloadr)selfrcreates r __init__zHtpasswdFile.__init__sh    Ow~~dm,, O +t},M,M,MNNN  O Or cg|_t|jdd5}|D]J}|d\}}||g}|j|K ddddS#1swxYwYdS)z5 Read the htpasswd file into memory. rutf-8encoding:N)ropenrsplitrstripappend)rflineusernamepwhashentrys r rzHtpasswdFile.load!s $-w 7 7 7 +1 + +#'::c?? &!6==??3 ##E**** + + + + + + + + + + + + + + + + + + +sAA;;A?A?ct|jdd5}|jD])}||dd|dd* ddddS#1swxYwYdS) z1 Write the htpasswd file to disk wrrrr N)rrrwrite)rr!r%s r savezHtpasswdFile.save,s$-w 7 7 7 41 4 45822eAh2223333 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s2AAAcJtj|d}dt j|dz}fd|jD}|r ||dd<dS|j|gdS)zI Replace the entry for the given user, or add it if new. rz{SHA}c,g|]}|dk|Srr.0r%r#s r z'HtpasswdFile.update..>s1555e$Qx833"333r rr(N) hashlibsha1encodedigestbase64 b64encodedecoderr )rr#password sha1_digeststored_passwordmatching_entriess ` r updatezHtpasswdFile.update4s l8??7#;#;<<CCEE !F$4[$A$A$H$H$Q$QQ5555t|555  =%4 Q  " " " L  ? ; < < < < .Is1111% 8x/////r N)r)rr#s `r deletezHtpasswdFile.deleteEs211114<111 r N)F) rrr__doc__rrr+r=r@rr r r r srOOOO + + +444==="11111r r )r6r2r __author__ Exceptionrobjectr rr r rEs        I   717171717167171717171r