§ ;Š»j±ãó—ddlZddlZddlZddlmZddlmZddlmZddl m Z ddl m Z dZ ejd¦«Zd Zd „Zefd „Zd „Zdd„Zd„ZGd„de¦«ZdS)éN)ÚDict©Ú NotSupported)ÚGeneralPanelPluginV1)Ú_dblogin_cplogin_pairs)ÚFeatureÚ InterWorxz(.+)://(.+):(.+)@.*z/usr/local/interworx/iworx.inicóJ—tj t¦«S©N)ÚosÚpathÚisfileÚ IWORX_INI©óú /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/interworx.pyÚdetectrs€Ý Œ7�>Š>�)Ñ $Ô $Ð$rcó¤—i}tjd¬¦«}| |¦«| dd¬¦« d¦«}t  |¦«}d\}}}|r| dd d ¦«\}}}||d <||d <| dd ¬¦« d¦«|d<||d<|S)NF)ÚstrictÚmysqlÚrootdsn)ÚsectionÚoptionú")NNNéééÚloginÚpassÚdefault_serverÚhostÚdb)Ú configparserÚ ConfigParserÚreadÚgetÚstripÚPARSE_URI_PATTERNÚsearchÚgroup)Ú _conf_pathÚaccessÚ data_configÚ mysql_uriÚ parse_resultr"rÚpasswds rÚ db_accessr1sß€Ø €FÝÔ+°5Ð9Ñ9Ô9€KØ×Ò�ZÑ Ô Ð à—’¨¸ �ÑBÔB×HÒHÈÑNÔN€IÝ$×+Ò+¨IÑ6Ô6€LØ,Ñ€Rˆ�Øð:Ø*×0Ò0°°A°qÑ9Ô9шˆU�FØ€Fˆ7�OØ€Fˆ6�NØ —_’_¨WÐ=M�_ÑNÔN×TÒTÐUYÑZÔZ€Fˆ6�NØ€Fˆ4�LØ €Mrcó*—tdddidœ¦«‚)Nz&%(action)s is not currently supported.Úactionz1Getting all users registered in the Control Panel)ÚmessageÚcontextrrrrÚcpusersr6-s*€Ý Ø;ØÐQÐRððñ ô ðrFcóD—t¦«}t||¬¦«}|S)N)Ú cplogin_lstr,)r1r)r8Úwith_system_usersr,Údatas rÚdblogin_cplogin_pairsr;4s"€Ý ‰[Œ[€FÝ !¨kÀ&Ð IÑ IÔ I€DØ €Krcó—d|›d�S)Nzhttps://z:2443r)Údomains rÚget_user_login_urlr>:s€Ø #�fÐ #Ð #Ð #Ð#rcój‡—eZdZˆfd„Zd„Zd„Zd„Zed„¦«Zd„Z d„Z de e fd „Z ˆxZS) Ú PanelPlugincóH•—t¦« ¦«dSr )ÚsuperÚ__init__)ÚselfÚ __class__s €rrCzPanelPlugin.__init__?sø€Ý ‰Œ×ÒÑÔÐÐÐrcó—tS)z4 Return panel name :return: )Ú __cpname__©rDs rÚ getCPNamezPanelPlugin.getCPNameBs €õ Ðrcó¢— ttdd¬¦«5}| ¦«}ddd¦«n #1swxYwY| d¦«d dd¦« d d¦« d d¦« d ¦«d }t |dd œS#t $rYdSwxYw)zÆ Retrieve panel name and it's version :return: dict: { 'name': 'panel_name', 'version': 'panel_version', 'additional_info': 'add_info'} or None if can't get info Úrzutf-8)ÚencodingNÚversionéú Úú=rú[r)ÚnamerMÚadditional_info)Úopenrr%ÚsplitÚreplacerGÚ Exception)rDÚfÚoutrMs rÚget_cp_descriptionzPanelPlugin.get_cp_descriptionIs€ð Ý•i ¨wÐ7Ñ7Ô7ð ¸1Ø—f’f‘h”h�ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð—i’i  Ñ*Ô*¨1Ô-×5Ò5°d¸BÑ?Ô?×GÒGÈÈRÑPÔP×XÒXÐY\Ð^`ÑaÔa×gÒgÐhkÑlÔlÐmnÔoˆGÝ&Ø&Ø'+ð-ð-ð -øõð ð ð Ø�4�4ð øøøs/‚C™:® Cº>¾CÁ>ÁA=Cà Cà Ccó—t¦«S)zÿ Getting root access to mysql database. For example {'login': 'root', 'db': 'mysql', 'host': 'localhost', 'pass': '9pJUv38sAqqW'} :return: root access to mysql database :rtype: dict :raises: NoDBAccessData )r1rHs rr1zPanelPlugin.db_accessZs€õ‰{Œ{Ðrcó—gS)z¢ Return aliases from user domain :param str|unicode cpuser: user login :param str|unicode domain: :return list of aliases r)Úcpuserr=s rÚ useraliaseszPanelPlugin.useraliaseses €ðˆ rcó—t¦«S)z¥ Generates a list of cpusers registered in the control panel :return: list of cpusers registered in the control panel :rtype: tuple )r6rHs rr6zPanelPlugin.cpusersos€õ‰yŒyÐrcó —t|¦«S)z` Get login url for current panel; :type domain: str :rtype: str )r>)rDr=s rr>zPanelPlugin.get_user_login_urlxs€õ " &Ñ)Ô)Ð)rÚreturncót—tjtjtjtjtjgSr )rÚ RUBY_SELECTORÚPYTHON_SELECTORÚNODEJS_SELECTORÚRESELLER_LIMITSÚWPOSrHs rÚget_unsupported_cl_featuresz'PanelPlugin.get_unsupported_cl_features€s)€å Ô !Ý Ô #Ý Ô #Ý Ô #Ý ŒLð  ð r)Ú__name__Ú __module__Ú __qualname__rCrIr[r1Ú staticmethodr_r6r>ÚlistrriÚ __classcell__)rEs@rr@r@>s½ø€€€€€ðððððððððððð" ð ð ðððñ„\ððððð*ð*ð*ð ¨T°'¬]ð ð ð ð ð ð ð ð rr@)NF)r#r ÚreÚtypingrÚclcommon.cpapi.cpapiexceptionsrÚclcommon.cpapi.GeneralPanelrÚ clcommon.cpapi.plugins.universalrÚclcommon.featuresrrGÚcompiler(rrr1r6r;r>r@rrrúrws7ððÐÐÐØ € € € Ø € € € àÐÐÐÐÐà7Ð7Ð7Ð7Ð7Ð7Ø<Ð<Ð<Ð<Ð<Ð<ØCÐCÐCÐCÐCÐCØ%Ð%Ð%Ð%Ð%Ð%à € à�B”JÐ5Ñ6Ô6Ðð -€ ð %ð%ð%ð#ððððð"ððððððð $ð$ð$ðI ðI ðI ðI ðI Ð&ñI ôI ðI ðI ðI r