y1 d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZmZm Z d dl Zd dlm Z mZ d dlmZ d dlmZ d dlmZmZmZmZ dZ G d d e Zd Z G d d Z G d de Z G d de Z G d de Z G d de Z G d de Z! G d de Z" G d de Z# G d de Z$dS ) N)TupleOptionalList)ClPwd mysql_lib)ProcLve)grep)cpaneldirectadmin ispmanagerplesk0 c e Zd ZdZdS )ConfigDataErrorz Should be raised when something went wrong during user's config data loading/parsing. Supposed to be used when we want to skip some user with broken configuration files N)__name__ __module____qualname____doc__ py/clcontrollib.pyr r s Dr r c t j t j dk rt S t j dk rt S t j dk rt S t j dk rt S t j dk rt S t j dk rt S t S )NPleskcPanel InterWorx ISPManagerDirectAdmin HostingNG) detect getCPNameCP_NAMEr Cpanelr r r r Unknownr r r detect_panelclassr$ # s ~ ww ~!!xx ~$${{ ~%%|| ~&&}} ~$${{99r c e Zd Zd ZddZd Zd Zed Z dd Z ed Z edd Zdd ZddZ ddZddZddZddZddZddZddZddZddZdS )GeneralPanelc 4 t | _ | j j | _ t j | _ | j | j k r t d| j d| j d d | _ d S )NzClass "z" not should be used on panel "")r users_data __class__r class_namer r current_panel_namelowerUserWarningcpapi_plugin)selfs r __init__zGeneralPanel.__init__6 s ''.1"("2"4"4? ""d&=&C&C&E&EEEd$/dd$Jaddd !r Fc 4 | j S )z List all admins names in given control panel :param bool debug: Do produce debug output or don't :return: list of strings )r/ adminsr0 debugs r list_adminszGeneralPanel.list_adminsA s '')))r c 6 | j | S )z| Return True if username is in admin names :param str username: user to check :return: bool )r/ is_admin)r0 usernames r r8 zGeneralPanel.is_adminI s ))(333r c l |r1t j | d| j j d d S d S )Nz is not implemented for )sysstderrwriter* r r0 r5 method_names r _warningzGeneralPanel._warningQ sI bJ``T^E\```aaaaa b br c J t j t j d| d S )NzCL_CONTROLLIB: )syslogLOG_WARNING)msgs r _slog_warningzGeneralPanel._slog_warningU s&