Qkh B d Z ddlZddlmZ d ZddZddZd d Zd ZdS )z> api that is suitable for both cPanel, Directadmin, interWorx N) mysql_libc dS )z Retrieve panel name and it's version :return: dict: { 'CPName': 'panel_name', 'CPVer': 'panel_version', 'CPAdd': 'add_info'} or None if can't get info N r /builddir/build/BUILDROOT/alt-python27-cllib-3.4.40-1.el9.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/cpapi/plugins/universal.pyget_cp_descriptionr s 4r mysqlc | dd }| d }| d }d}|rAd}d dgt | z }|d | d z }t | }nd}|dz }t j |||| } | 5 } | || cddd S # 1 swxY w Y dS )z Extracting database login control panel login pairs from mysql database supported for cPanel, interWorx, Directadmin :param dblogin: :param dbpass: :param dbhost: :param dbname: :param cplogin_lst: :return: host localhostloginpassNzdSELECT User, LEFT(Db, LOCATE('\\', Db) - 1) AS DbPart FROM db WHERE User != '' and Db LIKE '%%\\\%%'z, z%sz( and LEFT(Db, LOCATE('\\', Db) - 1) in ()zbSELECT User, LEFT(Db, LOCATE('\\', Db) - 1) AS DbPart FROM db WHERE User != '' and Db LIKE '%\\\%'z GROUP BY User, DbPart)r userpasswddb)args)getjoinlenlistr MySQLConnectorconnect execute_query)accesscplogin_lstdbnamedbhostdblogindbpassr sqlplaceholders connectorr s r _dblogin_cplogin_pairsr$ sC ZZ , ,FWoG F^FD t vyy$#k*:*:!:;;KLKKKKK t$$C(f7066C C CI 0$//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s CC Cc 2 d| pt j z S )z| Gets admin email :param str|None _hostname: hostname for testing :return: admin's email :rtype: string zroot@)socketgethostname) _hostnames r get_admin_emailr) : s i76#5#7#788r Fc dgS )z List all admins names in given control panel :param bool debug: Do produce debug output or don't :return: list of strings rootr )debugs r adminsr- D s 8Or c " | t v S )zl Return True if username is in admin names :param str username: user to check :return: bool )r- )usernames r is_adminr0 M s vxxr )Nr )N)F) __doc__r&