bug fix: CLScripts

This commit is contained in:
Usman Nasir
2019-12-31 14:23:16 +05:00
parent 87177e1402
commit 457c5c1e62
5 changed files with 174 additions and 46 deletions

View File

@@ -18,10 +18,15 @@ from CLScript.CLMain import CLMain
class CloudLinuxAdmins(CLMain): class CloudLinuxAdmins(CLMain):
def __init__(self): def __init__(self, name, isMain):
CLMain.__init__(self) 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 = [] users = []
acl = ACL.objects.get(name='admin') acl = ACL.objects.get(name='admin')
for items in Administrator.objects.filter(acl=acl): for items in Administrator.objects.filter(acl=acl):
@@ -31,6 +36,13 @@ class CloudLinuxAdmins(CLMain):
else: else:
isMain = False isMain = False
if self.isMain:
if isMain == False:
continue
if self.name != None:
if self.name != items.userName:
continue
user = {'name': items.userName, user = {'name': items.userName,
"locale_code": "EN_us", "locale_code": "EN_us",
@@ -47,12 +59,13 @@ class CloudLinuxAdmins(CLMain):
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') 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: try:
pi.listAll(args.owner) pi.listAll()
except: except:
pi.listAll() pi.listAll()

View File

@@ -17,18 +17,28 @@ from CLScript.CLMain import CLMain
class CloudLinuxDomains(CLMain): class CloudLinuxDomains(CLMain):
def __init__(self): def __init__(self, name, owner):
CLMain.__init__(self) CLMain.__init__(self)
self.owner = owner
self.name = name
def listAll(self, owner=None): def listAll(self):
data = {} 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, data[webs.domain] = {"owner": webs.externalApp,
"document_root": "/home/%s/public_html/" % (webs.domain), "document_root": "/home/%s/public_html/" % (webs.domain),
"is_main": True} "is_main": True}
for webs in webs.childdomains_set.all():
for webs in ChildDomains.objects.all():
data[webs.domain] = {"owner": webs.master.externalApp, data[webs.domain] = {"owner": webs.master.externalApp,
"document_root": webs.path, "document_root": webs.path,
"is_main": False} "is_main": False}
@@ -39,12 +49,13 @@ class CloudLinuxDomains(CLMain):
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') 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() args = parser.parse_args()
pi = CloudLinuxDomains() pi = CloudLinuxDomains(args.owner, args.name)
try: try:
pi.listAll(args.owner) pi.listAll()
except: except:
pi.listAll() pi.listAll()

View File

@@ -46,7 +46,7 @@ class CloudLinuxPackages(CLMain):
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager')
parser.add_argument('--owner', help='Owner') parser.add_argument('-o', '--owner', help='Owner')
args = parser.parse_args() args = parser.parse_args()

View File

@@ -18,14 +18,18 @@ from CLScript.CLMain import CLMain
class CloudLinuxResellers(CLMain): class CloudLinuxResellers(CLMain):
def __init__(self): def __init__(self, id, name):
CLMain.__init__(self) CLMain.__init__(self)
self.id = id
self.name = name
def listAll(self, owner=None): def listAll(self, owner=None):
users = [] users = []
acl = ACL.objects.get(name='reseller') acl = ACL.objects.get(name='reseller')
for items in Administrator.objects.filter(acl=acl): for items in Administrator.objects.filter(acl=acl):
if self.name != None:
if self.name != items.userName:
continue
user = {'name': items.userName, user = {'name': items.userName,
"locale_code": "EN_us", "locale_code": "EN_us",
@@ -41,12 +45,13 @@ class CloudLinuxResellers(CLMain):
if __name__ == '__main__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') 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() args = parser.parse_args()
pi = CloudLinuxResellers() pi = CloudLinuxResellers(args.id, args.name)
try: try:
pi.listAll(args.owner) pi.listAll()
except: except:
pi.listAll() pi.listAll()

View File

@@ -19,40 +19,139 @@ from CLScript.CLMain import CLMain
class CloudLinuxUsers(CLMain): class CloudLinuxUsers(CLMain):
def __init__(self): def __init__(self, owner, username, packageName, packageOwner, fields, uid):
CLMain.__init__(self) 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 = [] users = []
for webs in websites:
for webs in Websites.objects.all():
itemPackage = webs.package itemPackage = webs.package
clPackage = CLPackages.objects.get(owner=itemPackage) clPackage = CLPackages.objects.get(owner=itemPackage)
package = {'name': clPackage.name, 'owner': webs.externalApp} package = {'name': clPackage.name, 'owner': webs.externalApp}
user = {'id': pwd.getpwnam(webs.externalApp).pw_uid, user = {}
'username': webs.externalApp,
'owner': webs.externalApp,
'domain': webs.domain,
'package': package,
'email': webs.adminEmail,
"locale_code": "EN_us"
}
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) users.append(user)
final = {'data': users, 'metadata': self.initialMeta} final = {'data': users, 'metadata': self.initialMeta}
print(json.dumps(final)) 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__': if __name__ == '__main__':
parser = argparse.ArgumentParser(description='CyberPanel CloudLinux Manager') main()
parser.add_argument('--owner', help='Owner')
args = parser.parse_args()
pi = CloudLinuxUsers()
try:
pi.listAll(args.owner)
except:
pi.listAll()