}Ce)ddlmZddlmZddlmZddlZddlmZmZmZm Z m Z ddl m Z ddl mZmZddlmZmZdd lmZmZmZdd lmZdd lmZmZGd d eZdS))absolute_import)division)print_functionN)TupleListOptionalAnyDict) CONFIG_PATH)NotFoundNotImplementedByVendor)GeneralPanelPluginV1PHPDescription)NoDBAccessData NotSupportedNoDomain) PublicApi)ALL_CL_FEATURESFeatureceZdZfdZdZdZd%dZd%dZd&dZd Z d Z d Z d Z d'd Z dZdZdZ d(dZd%dZdZd%dZdZdZdZedZdZd&dZd&dZdZdZd Zd!e e!e"ffd"Z#d#Z$d$Z%xZ&S)) PanelPluginc|tt|t|_dSN)superr__init__r_api)self __class__s /builddir/build/BUILDROOT/alt-python27-cllib-3.3.7-2.el7.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/cpapi/plugins/vendors.pyrzPanelPlugin.__init__s. k4  ))+++KK ctjtsdS|jjSr)ospathexistsr r panel_infonamers r getCPNamezPanelPlugin.getCPNames4w~~k** 4y##%%**r ctjtsdS|j}|j|jddS)N)r&versionadditional_info)r"r#r$r rr%r&r*)rinfos rget_cp_descriptionzPanelPlugin.get_cp_descriptionsDw~~k** 4y##%% dltTTTr Fc|jdd}d|j|jDS)NTis_mainrcg|] }|j Sr&).0packs r z.PanelPlugin.admin_packages..'sPPPd PPPr owner)radminspackagesr&)r raise_exc main_admins radmin_packageszPanelPlugin.admin_packages%sHY%%d%33A6 PPdi&8&8z&8&O&OPPPPr ci}|jdd}|jD]K}|j|jkr|j|vr g||j<||j|jL|SNTr/r)rr9r:r8r&append)rr;resultr<r5s rresellers_packageszPanelPlugin.resellers_packages)sY%%d%33A6 I&&(( 1 1DzZ_,,z''%'tz" 4:  % %di 0 0 0 0 r Nc|jdd} |j||p|jdg}n#t$rgcYSwxYwd|DS)NTr/rid) package_name package_ownerfieldsc6g|]}t|jSr2)strrD)r4us rr6z8PanelPlugin.get_uids_list_by_package..?s )))aAD )))r )rr9usersr&r )rrE reseller_namer<rKs rget_uids_list_by_packagez$PanelPlugin.get_uids_list_by_package5sY%%d%33A6  IOO)+>zv$EE    III ))5))))s%A AAcL|j}d|DS)Nc*g|]}|j |jSr2) unix_user)r4admins rr6z&PanelPlugin.admins..Cs!GGGEuGGGGr )rr9)rr9s rr9zPanelPlugin.adminsAs)!!##GGVGGGGr cf|j}td|DS)Nc3$K|] }|jV dSrr3r4rs r z(PanelPlugin.resellers..Gs$//QV//////r )r resellerstuple)rrWs rrWzPanelPlugin.resellersEs2I'')) //Y//////r c.||vSr)rW)rusernames r is_resellerzPanelPlugin.is_resellerIs4>>++++r cD |jj}n$#t$r}t d|zd}~wwxYw|t dt }|jj|d<|jj|d<|jj |d<|jj |d<|S)N*db_info is not implemented by vendor: `%s`z0db_access is not supported by this control panelloginpasshostport) rdb_infomysqlr rdictaccessr^passwordr`ra)rdberes r db_accesszPanelPlugin.db_accessLs S""$$*BB% S S S !MPQ!QRR R S : !STT T)/w+vvv ! A=AcR |jj}n$#t$r}t d|zd}~wwxYw|t dg}|jD](\}}|r||vr |D]}|||g)t|S)Nr]z._get_key_nestedos:;;s##D . .c3--Jr )r@) robjectsrlkeylsr}rAuseras_arrayr|values r_convert_by_mappingzPanelPlugin._convert_by_mappingns     $ $DH ' 'g%% EE+OGCL$??E&&&& MM( # # # # r cddddddd} |j|}n#t$rgcYSwxYw||||S) NrZemailr8domain locale_codez package.name)cploginmailresellerdnslocalepackage filter_names)rrKr r)r sys_loginrrlrKs r_sys_users_infozPanelPlugin._sys_users_infos|"#%    IOOO;;EE   III ''w>>>s ' 66cdddd} |j|}n#t$rg}YnwxYw |j|}n#t$rg}YnwxYw|||z||S)Nr&rr)rrrr)rrWr r9r)rrrrlrWr9s r_resellers_infozPanelPlugin._resellers_infos#     +++CCII   III  Y%%9%==FF   FFF '' F(:GUKKKs$ 33A A"!A"rrrrrTc^|r|||S|||Sr)rr)rcpuserrsearch_sys_userss rcpinfozPanelPlugin.cpinfos6  7''66 6''66 6r c|jgd}i}|D](}t|jdd|jd||j<)|S)NrDrr8rGr&rr)rrKrxrr8rD)rr;rKrArs r list_userszPanelPlugin.list_userssc 'A'A'ABB  D"4<>> JF47OO r c~ |j|gd}n#t$ricYSwxYwd|DS)Nrr8rGcVi|]&}|jt|jdd|jd'S)r&Nr)rDrxrr8r4rs r z2PanelPlugin.get_reseller_users..sF    Gvt!D!DRVR\]]   r rrKr )rrrKs rget_reseller_userszPanelPlugin.get_reseller_userssl IOO(;U;U;UOVVEE   III       s ! 00cT|jddg}d|DS)NrDrrcFi|]}|jt|jddS)r&N)rDrxrrs rrz(PanelPlugin.list_all..s:    GWT\6488   r )rrK)rr;rKs rlist_allzPanelPlugin.list_alls= i'899      r c |j|ddgd}n#ttf$rYdSwxYw|jt |jddfS)Nr8r)unix_idrGr)rr&)rrKr IndexErrorr8rxr)ruser_idrs rreseller_package_by_uidz#PanelPlugin.reseller_package_by_uidsm 9??7GY;O?PPQRSDD$   66 z74<>>>>s $'<<cT|jdd}|jgSr?)rr9rrr<s rget_admin_emails_listz!PanelPlugin.get_admin_emails_lists- Y%%d%33A6  !!r c |j||}n'#ttf$rt d|zwxYw|j|jfS)Nr3z*Can't obtain document root for domain '%s')rdomainsr KeyErrorr document_rootr8)rrs rdocrootzPanelPlugin.docrootso RY&&F&33F;FF(# R R RG&PQQ Q R#V\11s !$$AcgS)z Return aliases from user domain :param str|unicode cpuser: user login :param str|unicode domain: :return list of aliases r2)rrs r useraliaseszPanelPlugin.useraliasess  r c |j|}n#t$rgcYSwxYwg}tt |d}|D]!\}}|||jf"|S)Nr7c|dj S)Nr/)_PanelPlugin__ds rz)PanelPlugin.userdomains..s3q6>GYr )r|)rrr sortedlistrmr@r)rrrrAsorted_domainsrr,s r userdomainszPanelPlugin.userdomainss i''f'55GG   III W]]__ 5 5;Y;YZZZ* 8 8LFD MM64#56 7 7 7 7 s  --cv d|j|dgDS#t$rgcYSwxYw)Ncg|] }|j Sr2)rZrs rr6z.PanelPlugin.reseller_users..s'"& r rZrr)r resellernames rreseller_userszPanelPlugin.reseller_userssj *.)//& |+:+=+=    III s &) 88c ||}t||dS#t$ricYSwxYw)N)rr)r)rrdrr )rrrKs rreseller_domainszPanelPlugin.reseller_domainss] '' 55E E1C DDEE E   III s8; A  A cr|jj}||S||S)N)r)rr%user_login_urlformat)rr url_templates rget_user_login_urlzPanelPlugin.get_user_login_urls;y++--<   ""&"111r cHd|jDS)Nc(i|]}|j|jSr2)r&rDrTs rrz5PanelPlugin.get_reseller_id_pairs..s<<<<<>>"-DDr0BDDGOGG $$$    r )Fr)NF)NrT)'__name__ __module__ __qualname__rr(r-r=rBrMr9rWr[rirsrrrrrrrrrr staticmethodrrrrrrrr rIboolrrr __classcell__)rs@rrrs]     +++ UUUQQQQ     * * * *HHH000,,, $(???$LLL()Z $7777       ???"""222\   222 ===&&& 4T ?       2r r) __future__rrrr"typingrrrr r vendors_apir vendors_api.exceptionsr r clcommon.cpapi.GeneralPanelrrclcommon.cpapi.cpapiexceptionsrrrvendors_api.parserrclcommon.constrrrr2r rrs7&&&&&&%%%%%% 33333333333333######CCCCCCCCLLLLLLLLQQQQQQQQQQ((((((33333333sssss&sssssr