|
Server : LiteSpeed System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 User : dewac4139 ( 1077) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /proc/self/root/usr/local/CyberCP/CLScript/ |
Upload File : |
#!/usr/local/CyberCP/bin/python
import sys
import os.path
import django
sys.path.append('/usr/local/CyberCP')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
try:
django.setup()
except:
pass
from websiteFunctions.models import Websites
import argparse
import pwd
import json
from CLScript.CLMain import CLMain
class CloudLinuxUsers(CLMain):
def __init__(self, owner, username, packageName, packageOwner, fields, uid):
CLMain.__init__(self)
self.owner = owner
self.username = username
self.packageName = packageName
self.packageOwner = packageOwner
self.fields = fields
if uid!=None:
self.uid = int(uid)
else:
self.uid = uid
if self.fields == None:
self.id = 1
self.un = 1
self.ow = 1
self.domain = 1
self.package = 1
self.email = 1
self.localecode = 1
else:
if self.fields.find('id') > -1:
self.id = 1
else:
self.id = 0
if self.fields.find('username') > -1:
self.un = 1
else:
self.un = 0
if self.fields.find('owner') > -1:
self.ow = 1
else:
self.ow = 0
if self.fields.find('domain') > -1:
self.domain = 1
else:
self.domain = 0
if self.fields.find('package') > -1:
self.package = 1
else:
self.package = 0
if self.fields.find('email') > -1:
self.email = 1
else:
self.email = 0
if self.fields.find('locale_code') > -1:
self.localecode = 1
else:
self.localecode = 0
def fetchJson(self, websites):
users = []
for webs in websites:
try:
itemPackage = webs.package
package = {'name': itemPackage.packageName, 'owner': webs.admin.userName}
user = {}
if self.id:
user['id'] = pwd.getpwnam(webs.externalApp).pw_uid
if self.un:
user['username'] = webs.externalApp
if self.ow:
if webs.admin.owner == 1:
user['owner'] = webs.admin.userName
else:
from loginSystem.models import Administrator
oAdmin = Administrator.objects.get(pk=webs.admin.owner)
user['owner'] = oAdmin.userName
if self.domain:
user['domain'] = webs.domain
if self.package:
user['package'] = package
if self.email:
user['email'] = webs.adminEmail
if self.localecode:
user['locale_code'] = "EN_us"
if self.packageName != None:
if self.package:
if self.packageName == user['package']['name'] and self.packageOwner == user['package']['owner']:
pass
else:
continue
if self.uid !=None:
if self.id:
if self.uid == user['id']:
users.append(user)
else:
users.append(user)
else:
users.append(user)
except BaseException as msg:
pass
final = {'data': users, 'metadata': self.initialMeta}
print(json.dumps(final))
def listAll(self):
if self.owner == None:
websites = Websites.objects.all()
else:
from loginSystem.models import Administrator
from plogical.acl import ACLManager
oAdmin = Administrator.objects.get(userName=self.owner)
currentACL = ACLManager.loadedACL(oAdmin.pk)
websites = ACLManager.findWebsiteObjects(currentACL, oAdmin.pk)
if self.username != None:
websites = websites.filter(externalApp=self.username)
self.fetchJson(websites)
def main():
parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager')
parser.add_argument('-o', '--owner', help='Owner')
parser.add_argument('--fields', help='Fields to output!')
parser.add_argument('--username', help='Fields to output!')
parser.add_argument('--package-name', help='Fields to output!')
parser.add_argument('--package-owner', help='Fields to output!')
parser.add_argument('--unix-id', help='Fields to output!')
args = vars(parser.parse_args())
pi = CloudLinuxUsers(args['owner'], args['username'], args['package_name'], args['package_owner'], args['fields'], args['unix_id'])
pi.listAll()
if __name__ == '__main__':
main()