Hacked By AnonymousFox
import json
import logging
import subprocess
logger = logging.getLogger(__name__)
class WhmApi:
"""
Enumerate WHM data from the current host
"""
def __init__(self):
self.whmapi1 = '/usr/sbin/whmapi1'
def run_cmd(self, cmd, output='json', **kwargs):
cmd_arr = [self.whmapi1, '--output={output}'.format(output=output), cmd]
for k, v in kwargs.items():
cmd_arr.append('{key}={value}'.format(key=k, value=v))
p = subprocess.Popen(cmd_arr, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
if p.returncode != 0:
raise Exception('Command failed: {err}'.format(err=err.decode()))
if output == 'json':
data = json.loads(out.decode(encoding='utf-8'))
else:
data = out.decode()
return data
def get_user_info(self, user):
return self.run_cmd('listaccts', search=user, searchtype='user')
def get_users_with_backups_enabled(self):
_accounts_with_backups = []
accounts = self.run_cmd('listaccts', want='backup,domain,user')
if 'data' in accounts:
for account in accounts['data']['acct']:
if account.get('backup', 0) == 1:
_accounts_with_backups.append(account)
return _accounts_with_backups
def enable_user_backups(self, user):
logger.info('enabling backups for {user}...'.format(user=user))
self.run_cmd('modifyacct', user=user, BACKUP=1)
logger.info('enabled backups for {user}'.format(user=user))
def disable_user_backups(self, user):
logger.info('disabling backups for {user}...'.format(user=user))
self.run_cmd('modifyacct', user=user, BACKUP=0)
logger.info('disabled backups for {user}'.format(user=user))
Hacked By AnonymousFox1.0, Coded By AnonymousFox