/usr/lib/python2.6/site-packages/clcommon/cpapi/plugins
NameSizeModeActions
cpanel.py118650644editdlrm
cpanel.pyc111780644editdlrm
cpanel.pyo111780644editdlrm
directadmin.py45620644editdlrm
directadmin.pyc58230644editdlrm
directadmin.pyo58230644editdlrm
interworx.py13530644editdlrm
interworx.pyc20930644editdlrm
interworx.pyo20930644editdlrm
ispmanager.py45220644editdlrm
ispmanager.pyc50590644editdlrm
ispmanager.pyo50590644editdlrm
nopanel.py10020644editdlrm
nopanel.pyc16880644editdlrm
nopanel.pyo16880644editdlrm
plesk.py26420644editdlrm
plesk.pyc37440644editdlrm
plesk.pyo37440644editdlrm
universal.py14510644editdlrm
universal.pyc19680644editdlrm
universal.pyo19680644editdlrm
__init__.py410644editdlrm
__init__.pyc1540644editdlrm
__init__.pyo1540644editdlrm
Edit: /usr/lib/python2.6/site-packages/clcommon/cpapi/plugins/plesk.py (2642B)
#!/usr/bin/python # -*- coding: utf-8 -*- import os try: import MySQLdb except ImportError: MySQLdb = None from clcommon.cpapi.cpapiexceptions import NotSupported, NoPackage from clcommon import ClPwd PSA_SHADOW_PATH = "/etc/psa/.psa.shadow" __cpname__ = 'Plesk' def detect(): return os.path.isfile('/usr/local/psa/version') def db_access(_pass_path=PSA_SHADOW_PATH): access = dict() access['login'] = 'admin' f = open(_pass_path) access['pass'] = f.read().strip() f.close() return access def cpusers(_accsess=None, _dbname='psa'): if not MySQLdb: raise NoPackage('Can not connect to database; MySQL-python package not installed.') access = _accsess or db_access() dbhost = access.get('host', 'localhost') dblogin = access['login'] dbpass = access['pass'] db = MySQLdb.connect(host=dbhost, user=dblogin, passwd=dbpass, db=_dbname) cursor = db.cursor() sql = r"SELECT login FROM sys_users" cursor.execute(sql) cpusers_lst = [fetched_one[0] for fetched_one in cursor.fetchall()] db.close() return cpusers_lst def dblogin_cplogin_pairs(cplogin_lst=None, with_system_users=False): raise NotSupported('Getting binding credentials in the database to the user name in the system is not currently ' 'supported. Is under development.') def homedirs(_sysusers=None, _cpusers=None): """ Detects and returns list of folders contained the home dirs of users of the DirectAdmin :param str|None _sysusers: for testing :param str|None _path: for testing :return: list of folders, which are parent of home dirs of users of the panel """ homedirs = [] if _cpusers is None: try: results = cpusers() except NoPackage: results = None else: results = _cpusers users = [] if results is not None: users = [line.encode('utf8') for line in results] # Plesk assumes MIN_UID as 10000 clpwd = ClPwd(10000) users_dict = clpwd.get_user_dict() # for testing only if isinstance(_sysusers, (list, tuple)): class pw(object): def __init__(self, name, dir): self.pw_name = name self.pw_dir = dir users_dict = {} for (name,dir) in _sysusers: users_dict[name] = pw(name, dir) for user_name in users_dict: if len(users) and user_name not in users: continue homedir = os.path.dirname(users_dict[user_name].pw_dir) if homedir not in homedirs: homedirs.append(homedir) return homedirs