§ ;Š»jE.ãó¢—ddlZddlmZmZmZmZmZddlmZddl m Z m Z ddl m Z ddlmZmZmZddlmZmZddlmZmZGd „d e¦«ZdS) éN)ÚAnyÚDictÚListÚOptionalÚTuple)Ú CONFIG_PATH)ÚNotFoundÚNotImplementedByVendor)Ú PublicApi)ÚNoDBAccessDataÚNoDomainÚ NotSupported)ÚGeneralPanelPluginV1ÚPHPDescription)ÚALL_CL_FEATURESÚFeaturecó‡—eZdZˆfd„Zd„Zd„Zd&d„Zd&d„Zd'd„Zd „Z d „Z d „Z d „Z d(d „Z d„Zd„Zd„Z d)d„Zd&d„Zd„Zd&d„Zd„Zd„Zd„Zed„¦«Zd„Zd'd„Zd'd„Zd„Zd„Zd „Zd!e e!fd"„Z"d#„Z#d$„Z$d%„Z%ˆxZ&S)*Ú PanelPlugincón•—t¦« ¦«t¦«|_dS©N)ÚsuperÚ__init__r Ú_api)ÚselfÚ __class__s €úž/builddir/build/BUILDROOT/alt-python27-cllib-3.4.44-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/cpapi/plugins/vendors.pyrzPanelPlugin.__init__s(ø€Ý ‰Œ×ÒÑÔÐÝ‘K”KˆŒ ˆ ˆ ócóŠ—tj t¦«sdS|j ¦«jSr)ÚosÚpathÚexistsrrÚ panel_infoÚname©rs rÚ getCPNamezPanelPlugin.getCPNames4€ÝŒw�~Š~�kÑ*Ô*ð Ø�4àŒy×#Ò#Ñ%Ô%Ô*Ð*rcó —tj t¦«sdS|j ¦«}|j|jddœS)N)r#ÚversionÚadditional_info)rr r!rrr"r#r')rÚinfos rÚget_cp_descriptionzPanelPlugin.get_cp_descriptionsD€ÝŒw�~Š~�kÑ*Ô*ð Ø�4àŒy×#Ò#Ñ%Ô%ˆØœ ¨d¬lÈtÐTÐTÐTrFcó˜—|j d¬¦«d}d„|j |j¬¦«D¦«S)NT©Úis_mainrcó—g|] }|j‘Œ S©©r#)Ú.0Úpacks rú z.PanelPlugin.admin_packages..!s€ÐPÐPÐP˜d�” ÐPÐPÐPr©Úowner)rÚadminsÚpackagesr#)rÚ raise_excÚ main_admins rÚadmin_packageszPanelPlugin.admin_packagessH€Ø”Y×%Ò%¨dÐ%Ñ3Ô3°AÔ6ˆ ØPÐP d¤i×&8Ò&8¸z¼Ð&8Ñ&OÔ&OÐPÑPÔPÐPrcó—i}|j d¬¦«d}|j ¦«D]K}|j|jkrŒ|j|vr g||j<||j |j¦«ŒL|S©NTr,r)rr6r7r5r#Úappend)rr8Úresultr9r2s rÚresellers_packageszPanelPlugin.resellers_packages#s‘€ØˆØ”Y×%Ò%¨dÐ%Ñ3Ô3°AÔ6ˆ Ø”I×&Ò&Ñ(Ô(ð 1ð 1ˆDØŒz˜Zœ_Ò,Ð,ØàŒz Ð'Ð'Ø%'��t”zÑ"Ø �4”:Ô × %Ò % d¤iÑ 0Ô 0Ð 0Ð 0؈ rNcóΗ|j d¬¦«d} |j ||p|jdg¬¦«}n#t$rgcYSwxYwd„|D¦«S)NTr,rÚid)Ú package_nameÚ package_ownerÚfieldscó6—g|]}t|j¦«‘ŒSr/)ÚstrrA)r1Úus rr3z8PanelPlugin.get_uids_list_by_package..9s €Ð)Ð)Ð)˜a•�A”D‘ ” Ð)Ð)Ð)r)rr6Úusersr#r )rrBÚ reseller_namer9rHs rÚget_uids_list_by_packagez$PanelPlugin.get_uids_list_by_package/sŒ€Ø”Y×%Ò%¨dÐ%Ñ3Ô3°AÔ6ˆ ð Ø”I—O’OØ)Ø+Ð>¨z¬Ø�vð$ñôˆEˆEøõ ð ð ð ØˆIˆIˆIð øøøà)Ð) 5Ð)Ñ)Ô)Ð)s£%A Á AÁAcóL—|j ¦«}d„|D¦«S)Ncó*—g|]}|j¯ |j‘ŒSr/)Ú unix_user)r1Úadmins rr3z&PanelPlugin.admins..=s!€ÐGÐGÐG E°u´ÐG�”ÐGÐGÐGr)rr6)rr6s rr6zPanelPlugin.admins;s)€Ø”×!Ò!Ñ#Ô#ˆØGÐG¨VÐGÑGÔGÐGrcóf—|j ¦«}td„|D¦«¦«S)Nc3ó$K—|] }|jV—Œ dSrr0©r1Úrs rú z(PanelPlugin.resellers..As$èè€Ð/Ð/ �Q”VÐ/Ð/Ð/Ð/Ð/Ð/r)rÚ resellersÚtuple)rrTs rrTzPanelPlugin.resellers?s2€Ø”I×'Ò'Ñ)Ô)ˆ ÝÐ/Ð/ YÐ/Ñ/Ô/Ñ/Ô/Ð/rcó.—|| ¦«vSr)rT)rÚusernames rÚ is_resellerzPanelPlugin.is_resellerCs€Ø˜4Ÿ>š>Ñ+Ô+Ð+Ð+rcó0— |j ¦«j}n&#t$r}t d|›d�¦«|‚d}~wwxYw|€t d¦«‚i}|jj|d<|jj|d<|jj|d<|jj |d<|S)Nú'db_info is not implemented by vendor: `ú`z0db_access is not supported by this control panelÚloginÚpassÚhostÚport) rÚdb_infoÚmysqlr r Úaccessr\Úpasswordr^r_)rÚdbÚerbs rÚ db_accesszPanelPlugin.db_accessFsµ€ð XØ”×"Ò"Ñ$Ô$Ô*ˆBˆBøÝ%ð Xð Xð XÝ Ð!OÈ1Ð!OÐ!OÐ!OÑPÔPÐVWÐ Wøøøøð Xøøøð ˆ:Ý Ð!SÑTÔTÐ TàˆØœ)œ/ˆˆw‰ØœÔ+ˆˆv‰Øœœˆˆv‰Øœœˆˆv‰Øˆ ó‚!¡ A«?¿AcóV— |j ¦«j}n&#t$r}t d|›d�¦«|‚d}~wwxYw|€t d¦«‚g}|j ¦«D](\}}|r||vrŒ |D]}| ||g¦«ŒŒ)t|¦«S)NrZr[zÚsys_userÚdb_usersÚdb_users rÚdblogin_cplogin_pairsz!PanelPlugin.dblogin_cplogin_pairsVsì€ð VØ”×"Ò"Ñ$Ô$Ô*ˆBˆBøÝ%ð Vð Vð VÝÐMÈÐMÐMÐMÑNÔNÐTUÐ Uøøøøð Vøøøð ˆ:ÝÐ]Ñ^Ô^Ð ^àˆØ"$¤*×"2Ò"2Ñ"4Ô"4ð 3ð 3Ñ ˆH�hØð ˜x¨{Ð:Ð:Øà#ð 3ð 3�Ø— ’ ˜w¨Ð1Ñ2Ô2Ð2Ð2ð 3å�V‰}Œ}Ðrgcó®—d„}g}|D]L}g}|D]0}||vrd} n||||¦«} | | ¦«Œ1| |¦«ŒM|S)Ncó\—| d¦«}|D]}t||d¦«}Œ|S)Nú.)ÚsplitÚgetattr)ÚtokenÚobjÚkeysÚkeys rÚ_get_key_nestedz8PanelPlugin._convert_by_mapping.._get_key_nestedis:€Ø—;’;˜sÑ#Ô#ˆDØð .ð .�ݘc 3¨Ñ-Ô-��؈Jr)r=) rÚobjectsriÚkeylsrzr>ÚuserÚas_arrayryÚvalues rÚ_convert_by_mappingzPanelPlugin._convert_by_mappinghs‘€ð ð ð ð ˆØð $ð $ˆD؈HØð 'ð '�ؘgÐ%Ð%Ø �E�Eà+˜O¨G°C¬L¸$Ñ?Ô?�EØ—’ Ñ&Ô&Ð&Ð&Ø �MŠM˜(Ñ #Ô #Ð #Ð #àˆ rcó —dddddddœ} |j |¬¦«}n#t$rgcYSwxYw| |||¦«S) NrWÚemailr5ÚdomainÚ locale_codez package.name)ÚcploginÚmailÚresellerÚdnsÚlocaleÚpackage©Ú filter_names)rrHr r€)rÚ sys_loginr|rirHs rÚ_sys_users_infozPanelPlugin._sys_users_info|s|€ð"ØØØØ#Ø%ð  ð ˆð Ø”I—O’O°�OÑ;Ô;ˆEˆEøÝð ð ð ØˆIˆIˆIð øøøð×'Ò'¨¨w¸Ñ>Ô>Ð>s ‹'§ 6µ6cóþ—ddddœ} |j |¬¦«}n#t$rg}YnwxYw |j |¬¦«}n#t$rg}YnwxYw| ||z||¦«S)Nr#r‚r„)r…r†r‰r‹)rrTr r6r€)rr�r|rirTr6s rÚ_resellers_infozPanelPlugin._resellers_infoŽs¾€ðØØ#ð ð ˆð  Øœ ×+Ò+¸Ð+ÑCÔCˆIˆIøÝð ð ð ØˆIˆIˆIð øøøð Ø”Y×%Ò%°9Ð%Ñ=Ô=ˆFˆFøÝð ð ð ØˆFˆFˆFð øøøð×'Ò'¨ °FÑ(:¸GÀUÑKÔKÐKsˆ$¤ 3²3·AÁ A"Á!A"©r…rŠr†r‡rˆTcó^—|r| ||¦«S| ||¦«Sr)rŽr�)rÚcpuserr|Úsearch_sys_userss rÚcpinfozPanelPlugin.cpinfo¢s6€à ð 7Ø×'Ò'¨°Ñ6Ô6Ð 6à×'Ò'¨°Ñ6Ô6Ð 6rcóš—|j gd¢¬¦«}i}|D](}t|jdd¦«|jdœ||j<Œ)|S)N©rArŠr5©rDr#©rŠr‡)rrHrurŠr5rA)rr8rHr>r}s rÚ list_userszPanelPlugin.list_users©sc€Ø” —’Ð'AÐ'AÐ'A�ÑBÔBˆØˆØð ð ˆDå" 4¤<°¸Ñ>Ô>Ø œJððˆF�4”7‰OˆOðˆ rcó~— |j |gd¢¬¦«}n#t$ricYSwxYwd„|D¦«S)Nr—©r5rDcóV—i|]&}|jt|jdd¦«|jdœ“Œ'S)r#Nr™)rArurŠr5©r1r}s rú z2PanelPlugin.get_reseller_users..¸sF€ð ð ð àð ŒG¥¨¬°v¸tÑ!DÔ!DÐRVÔR\Ð]Ð]ð ð ð r©rrHr )rr‡rHs rÚget_reseller_userszPanelPlugin.get_reseller_users³sl€ð Ø”I—O’O¨(Ð;UÐ;UÐ;U�OÑVÔVˆEˆEøÝð ð ð ØˆIˆIˆIð øøøð ð àð ñ ô ð s ‚!¡ 0¯0cóT—|j ddg¬¦«}d„|D¦«S)NrArŠr˜cóF—i|]}|jt|jdd¦«“ŒS)r#N)rArurŠržs rrŸz(PanelPlugin.list_all..¿s:€ð ð ð àð ŒG•W˜Tœ\¨6°4Ñ8Ô8ð ð ð r)rrH)rr8rHs rÚlist_allzPanelPlugin.list_all½s=€Ø” —’¨¨iÐ'8�Ñ9Ô9ˆð ð àð ñ ô ð rcó¸— |j |ddg¬¦«d}n#ttf$rYdSwxYw|jt |jdd¦«fS)Nr5rŠ)Úunix_idrDr)Úr§r#)rrHr Ú IndexErrorr5rurŠ)rÚuser_idr}s rÚreseller_package_by_uidz#PanelPlugin.reseller_package_by_uidÄsm€ð Ø”9—?’?¨7¸GÀYÐ;O�?ÑPÔPÐQRÔSˆDˆDøÝ�*Ð%ð ð ð Ø�6�6ð øøøàŒz�7 4¤<°¸Ñ>Ô>Ð>Ð>s ‚$'§<»<cóT—|j d¬¦«d}|jgSr<)rr6r‚©rr9s rÚget_admin_emails_listz!PanelPlugin.get_admin_emails_listËs-€ð ”Y×%Ò%¨dÐ%Ñ3Ô3°AÔ6ˆ ØÔ Ð!Ð!rcó¾— |j |¬¦«|}n-#ttf$r}t d|›d�¦«|‚d}~wwxYw|j|jfS)Nr0z'Can't obtain document root for domain 'ú')rÚdomainsr ÚKeyErrorr Ú document_rootr5)rrƒres rÚdocrootzPanelPlugin.docrootÓs|€ð WØ”Y×&Ò&¨FÐ&Ñ3Ô3°FÔ;ˆFˆFøÝ�(Ð#ð Wð Wð WÝÐNÀVÐNÐNÐNÑOÔOÐUVÐ Vøøøøð WøøøàÔ# V¤\Ð1Ð1s‚!$¤AµA Á Acó—gS)z¢ Return aliases from user domain :param str|unicode cpuser: user login :param str|unicode domain: :return list of aliases r/)r“rƒs rÚ useraliaseszPanelPlugin.useraliasesÚs €ðˆ rcó— |j |¬¦«}n#t$rgcYSwxYwg}tt | ¦«¦«d„¬¦«}|D]!\}}| ||jf¦«Œ"|S)Nr4có—|dj S)Nér,)Ú_PanelPlugin__ds rúz)PanelPlugin.userdomains..ìs€È3ÈqÌ6Ì>ÐGY€r)ry)rr°r ÚsortedÚlistrjr=r²)rr“r°r>Úsorted_domainsrƒr)s rÚ userdomainszPanelPlugin.userdomainsäs§€ð Ø”i×'Ò'¨fÐ'Ñ5Ô5ˆGˆGøÝð ð ð ØˆIˆIˆIð øøøðˆå¥ W§]¢]¡_¤_Ñ 5Ô 5Ð;YÐ;YÐZÑZÔZˆØ*ð 8ð 8‰LˆF�DØ �MŠM˜6 4Ô#5Ð6Ñ 7Ô 7Ð 7Ð 7؈ s ‚ž -¬-cóv— d„|j |dg¬¦«D¦«S#t$rgcYSwxYw)Ncó—g|] }|j‘Œ Sr/)rWržs rr3z.PanelPlugin.reseller_users..ós'€ðððØ"&�” ðððrrWrœr )rÚ resellernames rÚreseller_userszPanelPlugin.reseller_usersñsj€ð ððØ*.¬)¯/ª/Ø&° ¨|ð+:ñ+=ô+=ðñôð øõð ð ð ØˆIˆIˆIð øøøs ‚&)© 8·8cóš— | |¦«}t| |d¬¦«¦«S#t$ricYSwxYw)N)r…rˆ)r|)rÂÚdictr•r )rrÁrHs rÚreseller_domainszPanelPlugin.reseller_domainsús]€ð Ø×'Ò'¨ Ñ5Ô5ˆEݘŸ š  EÐ1C˜ ÑDÔDÑEÔEÐ EøÝð ð ð ØˆIˆIˆIð øøøs‚8;» A Á A cór—|j ¦«j}|€|S| |¬¦«S)N)rƒ)rr"Úuser_login_urlÚformat)rrƒÚ url_templates rÚget_user_login_urlzPanelPlugin.get_user_login_urls;€Ø”y×+Ò+Ñ-Ô-Ô<ˆ Ø Ð ØÐ Ø×"Ò"¨&Ð"Ñ1Ô1Ð1rcóH—d„|j ¦«D¦«S)Ncó(—i|]}|j|j“ŒSr/)r#rArQs rrŸz5PanelPlugin.get_reseller_id_pairs..s€Ð<Ð<Ð< �”˜œÐ<Ð<Ð.sOøèè€ð ð Øð*×-Ò-¨g°uÑ=Ô=ð  Ø ð ð ð ð ð ð r) rr"Úsupported_cl_featuresÚis_feature_lve_supportedrÚLVEÚsetrÚremoveÚaddÚ AUTOTRACINGÚXRAYr¼)rÚdisabled_featuresrÕs @rÚget_unsupported_cl_featuresz'PanelPlugin.get_unsupported_cl_featuressø€Ø!%¤×!5Ò!5Ñ!7Ô!7Ô!MÐð "Ð )Ø×,Ò,Ñ.Ô.ð Ø� Ý”K�=Ð åð ð ð ð Ý#2ð ñ ô ñ ô Ðð × (Ò (Ñ *Ô *ð /ÝŒ{Ð/Ð/Ð/Ø!×(Ò(­¬Ñ5Ô5Ð5øà × !Ò !¥'¤+Ñ .Ô .Ð .õ Ô Ð"3Ð 3Ð 3½¼ ÐL]Ð8]Ð8]Ø × $Ò $¥WÔ%8Ñ 9Ô 9Ð 9åÐ%Ñ&Ô&Ð&rcóœ—ddlm}m}tj d¦«}t ||¦« |d¬¦« g¦«S)Nr)Úis_cl_solo_editionÚ is_containerz/proc/lve/listT)Úskip_jwt_check)Úclcommon.lib.cleditionrárârr r!Úall)rrárâÚis_lve_availables rr×z$PanelPlugin.is_feature_lve_supported+s{€ð ð ð ð ð ð ð ð õœ7Ÿ>š>Ð*:Ñ;Ô;ÐÝØ Ø� ‘”Ð Ø"Ð"°$Ð7Ñ7Ô7Ð 7ð ñ ô ð rcó—|j d¬¦«}i}| ¦«D]K\}}|jjrdnd}|jjr |jj}|jj}|sŒ<|j|||dœ||<ŒL|S)NT)Úwith_phpÚfpmÚcgi)rWÚphp_version_idÚ handler_typeÚdisplay_version)rr°rjÚphpréÚhandlerrër5)rr°Údomains_php_inforƒÚ domain_inforìÚphp_version_fulls rÚget_domains_php_infoz PanelPlugin.get_domains_php_info;s²€Ø”)×#Ò#¨TÐ#Ñ2Ô2ˆàÐØ#*§=¢=¡?¤?ð ð Ñ ˆF�Kà$/¤OÔ$7ð˜5˜5Øð ðŒÔ&ð 7Ø*œÔ6� à*œÔ=Ð Ø#ð Øð(Ô-Ø"2Ø ,Ø#3ð (ð(Ð ˜VÑ $Ð $ð Ðrc óþ—|j ¦«}g}|D]^}| t|j|jd›d|jd›�|j|j|j|j¬¦«¦«Œ_|S)Néþÿÿÿrséÿÿÿÿ)Ú identifierr'ÚdirÚ modules_dirÚbinÚini) rrîr=rr÷rørùrúrû)rÚphpsÚphp_descriptionrîs rÚget_installed_php_versionsz&PanelPlugin.get_installed_php_versionsTs“€ØŒy�}Š}‰ŒˆàˆØð ð ˆCØ × "Ò "¥>Øœ>Øœ>¨"Ô-ÐDÐD°´¸rÔ0BÐDÐDØ”GØœOØ”GØ”Gð $ñ$ô$ñ ô ð ð ðÐr)Fr)NF)Nr‘T)'Ú__name__Ú __module__Ú __qualname__rr%r*r:r?rJr6rTrXrfrpr€rŽr�r•ršr¡r¤rªr­r³Ú staticmethodrµr¾rÂrÅrÊrÍrÏr¼rrßr×rórþÚ __classcell__)rs@rrr shø€€€€€ð ð ð ð ð ð+ð+ð+ð UðUðUðQðQðQðQð ð ð ð ð *ð *ð *ð *ðHðHðHð0ð0ð0ð,ð,ð,ðððð ðððð$ððð(?ð?ð?ð$LðLðLð()ZØ $ð7ð7ð7ð7ððððð ð ð ð ð ð ð ð?ð?ð?ð"ð"ð"ð2ð2ð2ðððñ„\ðð ð ð ððððððððð2ð2ð2ð =ð=ð=ð&ð&ð&ð'¨T°'¬]ð'ð'ð'ð'ð: ð ð ð  ð ð ð2ððððððrr)rÚtypingrrrrrÚ vendors_apirÚvendors_api.exceptionsr r Úvendors_api.parserr Úclcommon.cpapi.cpapiexceptionsr r rÚclcommon.cpapi.GeneralPanelrrÚclcommon.featuresrrrr/rrúr sðØ € € € Ø3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ð3à#Ð#Ð#Ð#Ð#Ð#ØCÐCÐCÐCÐCÐCÐCÐCØ(Ð(Ð(Ð(Ð(Ð(àQÐQÐQÐQÐQÐQÐQÐQÐQÐQØLÐLÐLÐLÐLÐLÐLÐLØ6Ð6Ð6Ð6Ð6Ð6Ð6Ð6ðUðUðUðUðUÐ&ñUôUðUðUðUr