a  Ðhœã@s¦ddlZddlZddlZddlZddlZddlmZmZmZm Z ddl m Z ddl m Z mZdZdZe e¡Ze eeee ffZGdd„dejƒZGd d „d ƒZdS) éN)ÚDictÚListÚSequenceÚTuple)ÚAskpassHandler)ÚVariantÚbusz'/usr/lib/polkit-1/polkit-agent-helper-1z /PolkitAgentc sneZdZedœ‡fdd„ Zej dgd¢¡eeee eefee e ddœdd „ƒZ e jjdd œd d „Z‡ZS) Ú.org_freedesktop_PolicyKit1_AuthenticationAgent©Ú respondercstƒ ¡||_dS©N)ÚsuperÚ__init__r ©Úselfr ©Ú __class__©ú2/usr/lib/python3.9/site-packages/cockpit/polkit.pyr.s z7org_freedesktop_PolicyKit1_AuthenticationAgent.__init__Ú)Úsrrza{ss}rz a(sa{sv})N)Ú action_idÚmessageÚ icon_nameÚdetailsÚcookieÚ identitiesÚreturnc Ãst d||||||¡t ¡}|D]8\}} |dkr"d| vr"| dj|kr"t d| |¡qlq"t d|¡dSt |¡j} t j t | |t j j t j j dIdH} zZz| | ¡IdHWn&t jyÖt d¡|  ¡Yn0W|  ¡IdH} t d| ¡n|  ¡IdH} t d| ¡0dS) Nz[BeginAuthentication: action %s, message "%s", icon %s, details %s, cookie %s, identities %rz unix-userÚuidz,Authentication subject %s matches our uid %dz*Not supporting authentication as any of %s)ÚstdinÚstdoutzCancelled authenticationzhelper exited with code %i)ÚloggerÚdebugÚosÚgeteuidÚvalueÚwarningÚpwdÚgetpwuidÚpw_nameÚasyncioZcreate_subprocess_execÚ HELPER_PATHÚ subprocessÚPIPEÚ _communicateÚCancelledErrorÚ terminateÚwait) rrrrrrrZmy_uidZ auth_typeÚsubjectZ user_nameÚprocessÚresrrrÚbegin_authentication3s0 ÿ    þ  ÿzCorg_freedesktop_PolicyKit1_AuthenticationAgent.begin_authentication)r3rcÃs`|js J‚|jsJ‚g}|j2z83dHW}t d|¡| ¡ ¡ d¡\}}}| d¡rð| d¡rhd}|j  d  |¡|d¡IdH}|  ¡|durªt d|¡t   d¡‚t d |¡|j | ¡¡|j d ¡~|j ¡IdHt d ¡q|d vr| |¡q|d kr"t d¡q\q|dkr>t d¡q\qt d|¡| ¡q\q6dS)NzRead line from helper: %sú Z PAM_PROMPTZPasswordrÚ z/got PAM_PROMPT %s, but do_askpass returned Nonezno password givenz1got PAM_PROMPT %s, do_askpass returned a passwordó z(got PAM_PROMPT, wrote password to helper)Z PAM_TEXT_INFOZ PAM_ERRORÚSUCCESSzAuthentication succeededÚFAILUREzAuthentication failedz&Unknown line from helper, aborting: %s)rr r!r"ÚstripÚdecodeÚ partitionÚ startswithr Z do_askpassÚjoinÚclearr*r/ÚwriteÚencodeZdrainÚappendr&r0)rr3ÚmessagesÚlineZcommandÚ_r%Úpasswdrrrr.Ps>                 z;org_freedesktop_PolicyKit1_AuthenticationAgent._communicate)Ú__name__Ú __module__Ú __qualname__rrrZ InterfaceZMethodÚstrrrÚIdentityr5r*r,ZProcessr.Ú __classcell__rrrrr -s ÿr c@s.eZdZdZedœdd„Zdd„Zdd„Zd S) Ú PolkitAgentz}Register polkit agent when required Use this as a context manager to ensure that the agent gets unregistered again. r cCs||_d|_dSr )r Ú agent_slotrrrrr€szPolkitAgent.__init__c Ãsäztj ¡|_Wn4tyD}zt d|¡|WYd}~Sd}~00zddttj ddƒif|_ Wn t y„t  d¡|YS0t |jƒ}|j t|¡|_t tjd¡}|j ddd d d |j |t¡IdHt  d |j |¡|S) Nz>cannot connect to system bus, not registering polkit agent: %sz unix-sessionz session-idZXDG_SESSION_IDrz4XDG_SESSION_ID not set, not registering polkit agentúorg.freedesktop.PolicyKit1ú%/org/freedesktop/PolicyKit1/Authorityú$org.freedesktop.PolicyKit1.AuthorityZRegisterAuthenticationAgentz (sa{sv})ssz%Registered agent for %r and locale %s)rZBusZdefault_systemÚ system_busÚOSErrorr!r&rr#Úenvironr2ÚKeyErrorr"r r Z add_objectÚAGENT_DBUS_PATHrOÚlocaleÚ setlocaleÚ LC_MESSAGESÚcall_method_async)rÚeZ agent_objectZ locale_namerrrÚ __aenter__„s.     ú zPolkitAgent.__aenter__c ÃsB|jr>|j ddddd|jt¡IdH|j ¡t d|j¡dS)NrPrQrRZUnregisterAuthenticationAgentz (sa{sv})szUnregistered agent for %r)rOrSr[r2rWÚcancelr!r")rZ _exc_typeZ _exc_valueZ _tracebackrrrÚ __aexit__¡sú  zPolkitAgent.__aexit__N)rHrIrJÚ__doc__rrr]r_rrrrrN{srN)r*rXZloggingr#r'ÚtypingrrrrZcockpit._vendor.fernyrZcockpit._vendor.systemd_ctypesrrr+rWZ getLoggerrHr!rKrLZObjectr rNrrrrÚs   N