diff --git a/CLScript/CloudLinuxAdmins.py b/CLScript/CloudLinuxAdmins.py index 9d276e499..9a56a0008 100755 --- a/CLScript/CloudLinuxAdmins.py +++ b/CLScript/CloudLinuxAdmins.py @@ -18,10 +18,15 @@ from CLScript.CLMain import CLMain class CloudLinuxAdmins(CLMain): - def __init__(self): + def __init__(self, name, isMain): CLMain.__init__(self) + self.name = name + if isMain == 'true': + self.isMain = 1 + else: + self.isMain = 0 - def listAll(self, owner=None): + def listAll(self): users = [] acl = ACL.objects.get(name='admin') for items in Administrator.objects.filter(acl=acl): @@ -31,6 +36,13 @@ class CloudLinuxAdmins(CLMain): else: isMain = False + if self.isMain: + if isMain == False: + continue + + if self.name != None: + if self.name != items.userName: + continue user = {'name': items.userName, "locale_code": "EN_us", @@ -47,12 +59,13 @@ class CloudLinuxAdmins(CLMain): if __name__ == '__main__': parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') - parser.add_argument('--owner', help='Owner') + parser.add_argument('-n','--name', help='Owner') + parser.add_argument('-m', '--is-main', help='Owner') - args = parser.parse_args() + args = vars(parser.parse_args()) - pi = CloudLinuxAdmins() + pi = CloudLinuxAdmins(args['name'], args['is_main']) try: - pi.listAll(args.owner) + pi.listAll() except: pi.listAll() diff --git a/CLScript/CloudLinuxDomains.py b/CLScript/CloudLinuxDomains.py index 156e6393d..67966a530 100755 --- a/CLScript/CloudLinuxDomains.py +++ b/CLScript/CloudLinuxDomains.py @@ -17,21 +17,31 @@ from CLScript.CLMain import CLMain class CloudLinuxDomains(CLMain): - def __init__(self): + def __init__(self, name, owner): CLMain.__init__(self) + self.owner = owner + self.name = name - def listAll(self, owner=None): + def listAll(self): data = {} - for webs in Websites.objects.all(): + if self.owner !=None: + websites = Websites.objects.filter(externalApp=self.owner) + else: + websites = Websites.objects.all() + + + for webs in websites: + if self.name != None: + if self.name != webs.domain: + continue data[webs.domain] = {"owner": webs.externalApp, "document_root": "/home/%s/public_html/" % (webs.domain), "is_main": True} - - for webs in ChildDomains.objects.all(): - data[webs.domain] = {"owner": webs.master.externalApp, - "document_root": webs.path, - "is_main": False} + for webs in webs.childdomains_set.all(): + data[webs.domain] = {"owner": webs.master.externalApp, + "document_root": webs.path, + "is_main": False} final = {'data': data, 'metadata': self.initialMeta} print(json.dumps(final)) @@ -39,12 +49,13 @@ class CloudLinuxDomains(CLMain): if __name__ == '__main__': parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') - parser.add_argument('--owner', help='Owner') + parser.add_argument('-o', '--owner', help='Owner') + parser.add_argument('-n', '--name', help='Owner') args = parser.parse_args() - pi = CloudLinuxDomains() + pi = CloudLinuxDomains(args.owner, args.name) try: - pi.listAll(args.owner) + pi.listAll() except: pi.listAll() diff --git a/CLScript/CloudLinuxPackages.py b/CLScript/CloudLinuxPackages.py index 916972ec0..0f71e0214 100755 --- a/CLScript/CloudLinuxPackages.py +++ b/CLScript/CloudLinuxPackages.py @@ -46,7 +46,7 @@ class CloudLinuxPackages(CLMain): if __name__ == '__main__': parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') - parser.add_argument('--owner', help='Owner') + parser.add_argument('-o', '--owner', help='Owner') args = parser.parse_args() diff --git a/CLScript/CloudLinuxResellers.py b/CLScript/CloudLinuxResellers.py index 1cced72e0..3c6e39a6d 100755 --- a/CLScript/CloudLinuxResellers.py +++ b/CLScript/CloudLinuxResellers.py @@ -18,14 +18,18 @@ from CLScript.CLMain import CLMain class CloudLinuxResellers(CLMain): - def __init__(self): + def __init__(self, id, name): CLMain.__init__(self) + self.id = id + self.name = name def listAll(self, owner=None): users = [] acl = ACL.objects.get(name='reseller') for items in Administrator.objects.filter(acl=acl): - + if self.name != None: + if self.name != items.userName: + continue user = {'name': items.userName, "locale_code": "EN_us", @@ -41,12 +45,13 @@ class CloudLinuxResellers(CLMain): if __name__ == '__main__': parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') - parser.add_argument('--owner', help='Owner') + parser.add_argument('--id', help='Owner') + parser.add_argument('-n', '--name', help='Owner') args = parser.parse_args() - pi = CloudLinuxResellers() + pi = CloudLinuxResellers(args.id, args.name) try: - pi.listAll(args.owner) + pi.listAll() except: pi.listAll() diff --git a/CLScript/CloudLinuxUsers.py b/CLScript/CloudLinuxUsers.py index ae2b4d8c6..91cbc3bf8 100755 --- a/CLScript/CloudLinuxUsers.py +++ b/CLScript/CloudLinuxUsers.py @@ -19,40 +19,139 @@ from CLScript.CLMain import CLMain class CloudLinuxUsers(CLMain): - def __init__(self): + 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 + self.uid = int(uid) - def listAll(self, owner=None): + 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.objects.all(): + for webs in websites: itemPackage = webs.package clPackage = CLPackages.objects.get(owner=itemPackage) package = {'name': clPackage.name, 'owner': webs.externalApp} - user = {'id': pwd.getpwnam(webs.externalApp).pw_uid, - 'username': webs.externalApp, - 'owner': webs.externalApp, - 'domain': webs.domain, - 'package': package, - 'email': webs.adminEmail, - "locale_code": "EN_us" - } + user = {} - users.append(user) + if self.id: + user['id'] = pwd.getpwnam(webs.externalApp).pw_uid + + if self.un: + user['username'] = webs.externalApp + + if self.ow: + user['owner'] = webs.externalApp + + 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) final = {'data': users, 'metadata': self.initialMeta} print(json.dumps(final)) + def listAll(self, owner=None, username = None): + + if self.owner == None: + websites = Websites.objects.all() + else: + websites = Websites.objects.filter(externalApp=self.owner) + + 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__': - parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') - parser.add_argument('--owner', help='Owner') - - args = parser.parse_args() - - pi = CloudLinuxUsers() - try: - pi.listAll(args.owner) - except: - pi.listAll() + main()