def main(argv): try: mode = argv.mode account = Account.objects.filter().first() if mode == 'create': if account is not None: raise ValueError('Account has been existed!') username = argv.username password = argv.password email = argv.email firstname = argv.firstname lastname = argv.lastname # validate checkUsername(username) checkEmail(email) checkPassword(password) account = Account(login_id=username, password=hash_password(password), email=email, first_name=firstname, last_name=lastname) account.save() print('Create User successfully!\nDone!') else: password = argv.password if account is None: print('No accounts have been created yet!') else: checkPassword(password) account = Account.objects.get(pk=account.id) account.password = hash_password(password) account.save() print('Change password successfully!\nDone!') except BaseException as e: print('Error: {}'.format(str(e)))
def changeUserPassAPI(request): try: if request.method == 'POST': data = json.loads(request.body) websiteOwner = data['websiteOwner'] ownerPassword = data['ownerPassword'] adminUser = data['adminUser'] adminPass = data['adminPass'] admin = Administrator.objects.get(userName=adminUser) if hashPassword.check_password(admin.password, adminPass): pass else: data_ret = { "changeStatus": 0, 'error_message': "Could not authorize access to API" } json_data = json.dumps(data_ret) return HttpResponse(json_data) websiteOwn = Administrator.objects.get(userName=websiteOwner) websiteOwn.password = hashPassword.hash_password(ownerPassword) websiteOwn.save() data_ret = {'changeStatus': 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'changeStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def changeAdminPassword(request): try: data = json.loads(request.body) adminPass = data['password'] randomFile = data['randomFile'] if os.path.exists(randomFile): os.remove(randomFile) admin = Administrator.objects.get(userName="******") admin.password = hashPassword.hash_password(adminPass) admin.save() data_ret = {"changed": 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) else: data_ret = { "changed": 0, 'error_message': "Failed to authorize access to change password!" } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = { "changed": 0, 'error_message': "Failed to authorize access to change password!" } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def changeAdminPassword(request): try: data = json.loads(request.body) adminPass = data['password'] randomFile = data['randomFile'] if os.path.exists(randomFile): os.remove(randomFile) admin = Administrator.objects.get(userName="******") admin.password = hashPassword.hash_password(adminPass) admin.save() data_ret = {"changed": 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) else: data_ret = {"changed": 0, 'error_message': "Failed to authorize access to change password!"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {"changed": 0, 'error_message': "Failed to authorize access to change password!"} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def main(): parser = argparse.ArgumentParser(description='Reset admin user password!') parser.add_argument('--password', help='New Password') args = parser.parse_args() adminPass = args.password numberOfAdministrator = Administrator.objects.count() if numberOfAdministrator == 0: ACLManager.createDefaultACLs() acl = ACL.objects.get(name='admin') token = hashPassword.generateToken('admin', '1234567') email = '*****@*****.**' admin = Administrator(userName="******", password=hashPassword.hash_password(adminPass), type=1, email=email, firstName="Cyber", lastName="Panel", acl=acl, token=token) admin.save() vers = version(currentVersion="1.9", build=2) vers.save() package = Package(admin=admin, packageName="Default", diskSpace=1000, bandwidth=1000, ftpAccounts=1000, dataBases=1000, emailAccounts=1000, allowedDomains=20) package.save() print("Admin password successfully changed!") return 1 token = hashPassword.generateToken('admin', adminPass) admin = Administrator.objects.get(userName="******") admin.password = hashPassword.hash_password(adminPass) admin.token = token admin.save() print("Admin password successfully changed!")
def changeUserPassAPI(request): try: if request.method == 'POST': data = json.loads(request.body) websiteOwner = data['websiteOwner'] ownerPassword = data['ownerPassword'] adminUser = data['adminUser'] adminPass = data['adminPass'] admin = Administrator.objects.get(userName=adminUser) if hashPassword.check_password(admin.password, adminPass): pass else: data_ret = {"changeStatus": 0, 'error_message': "Could not authorize access to API"} json_data = json.dumps(data_ret) return HttpResponse(json_data) websiteOwn = Administrator.objects.get(userName=websiteOwner) websiteOwn.password = hashPassword.hash_password(ownerPassword) websiteOwn.save() data_ret = {'changeStatus': 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'changeStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def loadLoginPage(request): try: userID = request.session['userID'] admin = Administrator.objects.get(pk=userID) cpuRamDisk = SystemInformation.cpuRamDisk() finaData = { "type": admin.type, 'ramUsage': cpuRamDisk['ramUsage'], 'cpuUsage': cpuRamDisk['cpuUsage'], 'diskUsage': cpuRamDisk['diskUsage'] } return render(request, 'baseTemplate/homePage.html', finaData) except KeyError: numberOfAdministrator = Administrator.objects.count() password = hashPassword.hash_password('1234567') if numberOfAdministrator == 0: email = '*****@*****.**' admin = Administrator(userName="******", password=password, type=1, email=email, firstName="Cyber", lastName="Panel") admin.save() vers = version(currentVersion="1.6", build=4) vers.save() package = Package(admin=admin, packageName="Default", diskSpace=1000, bandwidth=1000, ftpAccounts=1000, dataBases=1000, emailAccounts=1000, allowedDomains=20) package.save() newFWRule = FirewallRules(name="panel", proto="tcp", port="8090") newFWRule.save() newFWRule = FirewallRules(name="http", proto="tcp", port="80") newFWRule.save() newFWRule = FirewallRules(name="https", proto="tcp", port="443") newFWRule.save() newFWRule = FirewallRules(name="ftp", proto="tcp", port="21") newFWRule.save() newFWRule = FirewallRules(name="smtp", proto="tcp", port="25") newFWRule.save() newFWRule = FirewallRules(name="smtps", proto="tcp", port="587") newFWRule.save() newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465") newFWRule.save() newFWRule = FirewallRules(name="pop3", proto="tcp", port="110") newFWRule.save() newFWRule = FirewallRules(name="imap", proto="tcp", port="143") newFWRule.save() newFWRule = FirewallRules(name="simap", proto="tcp", port="993") newFWRule.save() newFWRule = FirewallRules(name="dns", proto="udp", port="53") newFWRule.save() newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53") newFWRule.save() newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210") newFWRule.save() return render(request, 'loginSystem/login.html', {}) else: return render(request, 'loginSystem/login.html', {})
def saveModifications(request): try: val = request.session['userID'] try: if request.method == 'POST': data = json.loads(request.body) accountUsername = data['accountUsername'] firstName = data['firstName'] lastName = data['lastName'] email = data['email'] admin = Administrator.objects.get(pk=val) user = Administrator.objects.get(userName=accountUsername) password = hashPassword.hash_password(data['password']) if admin.type != 1: if admin != user: data_ret = { 'saveStatus': 1, 'error_message': 'Not enough privileges' } json_data = json.dumps(data_ret) return HttpResponse(json_data) if user.type == 1: userAccountsLimit = 0 websitesLimit = 0 user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.initUserAccountsLimit = userAccountsLimit user.type = 1 user.save() data_ret = {'saveStatus': 1, 'error_message': 'None'} json_data = json.dumps(data_ret) return HttpResponse(json_data) if data['accountType'] == "Reseller": userAccountsLimit = 0 websitesLimit = 0 user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.initUserAccountsLimit = userAccountsLimit user.type = 2 user.save() elif data['accountType'] == "Normal User": user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = 0 user.type = 3 user.save() else: userAccountsLimit = 0 websitesLimit = 0 user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.initUserAccountsLimit = userAccountsLimit user.type = 1 user.save() data_ret = {'saveStatus': 1, 'error_message': 'None'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'saveStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: data_ret = { 'saveStatus': 0, 'error_message': "Not logged in as admin", } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def createWebsite(request): try: if request.method == 'POST': data = json.loads(request.body) adminUser = data['adminUser'] adminPass = data['adminPass'] domain = data['domainName'] adminEmail = data['ownerEmail'] packageName = data['packageName'] websiteOwner = data['websiteOwner'] ownerPassword = data['ownerPassword'] try: website = Websites.objects.get(domain=domain) data_ret = { "existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Website Already Exists" } json_data = json.dumps(data_ret) return HttpResponse(json_data) except: pass phpSelection = "PHP 7.0" admin = Administrator.objects.get(userName=adminUser) if hashPassword.check_password(admin.password, adminPass): pass else: data_ret = { "existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Could not authorize access to API" } json_data = json.dumps(data_ret) return HttpResponse(json_data) if adminEmail is None: adminEmail = "*****@*****.**" try: websiteOwn = Administrator( userName=websiteOwner, password=hashPassword.hash_password(ownerPassword), email=adminEmail, type=3, owner=admin.pk, initWebsitesLimit=1) websiteOwn.save() except BaseException, msg: pass if virtualHostUtilities.checkIfVirtualHostExists(domain) == 1: data_ret = { "existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "This domain already exists in Litespeed Configurations, first delete the domain to perform sweap." } json_data = json.dumps(data_ret) return HttpResponse(json_data) if virtualHostUtilities.createDirectoryForVirtualHost( domain, adminEmail, phpSelection) != 1: numberOfWebsites = Websites.objects.count( ) + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations( domain, numberOfWebsites) data_ret = { "existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "Can not create configurations, see CyberCP main log file." } json_data = json.dumps(data_ret) return HttpResponse(json_data) if virtualHostUtilities.createConfigInMainVirtualHostFile( domain) != 1: numberOfWebsites = Websites.objects.count( ) + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations( domain, numberOfWebsites) data_ret = { "existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "Can not create configurations, see CyberCP main log file." } json_data = json.dumps(data_ret) return HttpResponse(json_data) installUtilities.reStartLiteSpeed() selectedPackage = Package.objects.get(packageName=packageName) websiteOwn = Administrator.objects.get(userName=websiteOwner) website = Websites(admin=websiteOwn, package=selectedPackage, domain=domain, adminEmail=adminEmail, phpSelection=phpSelection, ssl=0) website.save() shutil.copy("/usr/local/CyberCP/index.html", "/home/" + domain + "/public_html/index.html") data_ret = { 'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: numberOfWebsites = Websites.objects.count( ) + ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations( domain, numberOfWebsites) data_ret = { 'createWebSiteStatus': 0, 'error_message': str(msg), "existsStatus": 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def changeAdminPassword(request): try: data = json.loads(request.body) adminPass = data['password'] randomFile = data['randomFile'] if os.path.exists(randomFile): numberOfAdministrator = Administrator.objects.count() if numberOfAdministrator == 0: ACLManager.createDefaultACLs() acl = ACL.objects.get(name='admin') token = hashPassword.generateToken('admin', '1234567') email = '*****@*****.**' admin = Administrator(userName="******", password=hashPassword.hash_password(adminPass), type=1, email=email, firstName="Cyber", lastName="Panel", acl=acl, token=token) admin.save() vers = version(currentVersion="1.7", build=7) vers.save() package = Package(admin=admin, packageName="Default", diskSpace=1000, bandwidth=1000, ftpAccounts=1000, dataBases=1000, emailAccounts=1000, allowedDomains=20) package.save() newFWRule = FirewallRules(name="panel", proto="tcp", port="8090") newFWRule.save() newFWRule = FirewallRules(name="http", proto="tcp", port="80") newFWRule.save() newFWRule = FirewallRules(name="https", proto="tcp", port="443") newFWRule.save() newFWRule = FirewallRules(name="ftp", proto="tcp", port="21") newFWRule.save() newFWRule = FirewallRules(name="smtp", proto="tcp", port="25") newFWRule.save() newFWRule = FirewallRules(name="smtps", proto="tcp", port="587") newFWRule.save() newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465") newFWRule.save() newFWRule = FirewallRules(name="pop3", proto="tcp", port="110") newFWRule.save() newFWRule = FirewallRules(name="imap", proto="tcp", port="143") newFWRule.save() newFWRule = FirewallRules(name="simap", proto="tcp", port="993") newFWRule.save() newFWRule = FirewallRules(name="dns", proto="udp", port="53") newFWRule.save() newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53") newFWRule.save() newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210") newFWRule.save() data_ret = {"changed": 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) os.remove(randomFile) admin = Administrator.objects.get(userName="******") admin.password = hashPassword.hash_password(adminPass) admin.save() data_ret = {"changed": 1, 'error_message': "None"} json_data = json.dumps(data_ret) return HttpResponse(json_data) else: data_ret = {"changed": 0, 'error_message': "Failed to authorize access to change password!"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {"changed": 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def loadLoginPage(request): try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) cpuRamDisk = SystemInformation.cpuRamDisk() if currentACL['admin'] == 1: admin = 1 else: admin = 0 finaData = { "admin": admin, 'ramUsage': cpuRamDisk['ramUsage'], 'cpuUsage': cpuRamDisk['cpuUsage'], 'diskUsage': cpuRamDisk['diskUsage'] } return render(request, 'baseTemplate/homePage.html', finaData) except KeyError: numberOfAdministrator = Administrator.objects.count() password = hashPassword.hash_password('1234567') noOfRules = FirewallRules.objects.count() if noOfRules == 0: newFWRule = FirewallRules(name="panel", proto="tcp", port="8090") newFWRule.save() newFWRule = FirewallRules(name="http", proto="tcp", port="80") newFWRule.save() newFWRule = FirewallRules(name="https", proto="tcp", port="443") newFWRule.save() newFWRule = FirewallRules(name="ftp", proto="tcp", port="21") newFWRule.save() newFWRule = FirewallRules(name="smtp", proto="tcp", port="25") newFWRule.save() newFWRule = FirewallRules(name="smtps", proto="tcp", port="587") newFWRule.save() newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465") newFWRule.save() newFWRule = FirewallRules(name="pop3", proto="tcp", port="110") newFWRule.save() newFWRule = FirewallRules(name="imap", proto="tcp", port="143") newFWRule.save() newFWRule = FirewallRules(name="simap", proto="tcp", port="993") newFWRule.save() newFWRule = FirewallRules(name="dns", proto="udp", port="53") newFWRule.save() newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53") newFWRule.save() newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210") newFWRule.save() newFWRule = FirewallRules(name="quic", proto="udp", port="443") newFWRule.save() if numberOfAdministrator == 0: ACLManager.createDefaultACLs() acl = ACL.objects.get(name='admin') token = hashPassword.generateToken('admin', '1234567') email = '*****@*****.**' admin = Administrator(userName="******", password=password, type=1, email=email, firstName="Cyber", lastName="Panel", acl=acl, token=token) admin.save() vers = version(currentVersion="1.9", build=1) vers.save() package = Package(admin=admin, packageName="Default", diskSpace=1000, bandwidth=1000, ftpAccounts=1000, dataBases=1000, emailAccounts=1000, allowedDomains=20) package.save() return render(request, 'loginSystem/login.html', {}) else: return render(request, 'loginSystem/login.html', {})
def createWebsite(request): try: if request.method == 'POST': data = json.loads(request.body) adminUser = data['adminUser'] adminPass = data['adminPass'] domain = data['domainName'] adminEmail = data['ownerEmail'] packageName = data['packageName'] websiteOwner = data['websiteOwner'] ownerPassword = data['ownerPassword'] externalApp = "".join(re.findall("[a-zA-Z]+", domain))[:7] try: website = Websites.objects.get(domain=domain) data_ret = { "existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Website Already Exists" } json_data = json.dumps(data_ret) return HttpResponse(json_data) except: pass try: website = ChildDomains.objects.get(domain=domain) data_ret = { "existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Website Already Exists" } json_data = json.dumps(data_ret) return HttpResponse(json_data) except: pass phpSelection = "PHP 7.0" admin = Administrator.objects.get(userName=adminUser) if hashPassword.check_password(admin.password, adminPass): pass else: data_ret = { "existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Could not authorize access to API" } json_data = json.dumps(data_ret) return HttpResponse(json_data) if adminEmail is None: adminEmail = "*****@*****.**" try: websiteOwn = Administrator( userName=websiteOwner, password=hashPassword.hash_password(ownerPassword), email=adminEmail, type=3, owner=admin.pk, initWebsitesLimit=1) websiteOwn.save() except BaseException, msg: pass ## Create Configurations numberOfWebsites = str(Websites.objects.count() + ChildDomains.objects.count()) sslpath = "/home/" + domain + "/public_html" execPath = "sudo python " + virtualHostUtilities.cyberPanel + "/plogical/virtualHostUtilities.py" execPath = execPath + " createVirtualHost --virtualHostName " + domain + " --administratorEmail " + adminEmail + " --phpVersion '" + phpSelection + "' --virtualHostUser " + externalApp + " --numberOfSites " + numberOfWebsites + " --ssl " + str( '0') + " --sslPath " + sslpath output = subprocess.check_output(shlex.split(execPath)) if output.find("1,None") > -1: pass else: data_ret = { 'createWebSiteStatus': 0, 'error_message': output, "existsStatus": 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data) ## Create Configurations ends here selectedPackage = Package.objects.get(packageName=packageName) websiteOwn = Administrator.objects.get(userName=websiteOwner) website = Websites(admin=websiteOwn, package=selectedPackage, domain=domain, adminEmail=adminEmail, phpSelection=phpSelection, ssl=0, externalApp=externalApp) website.save() data_ret = { 'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = { 'createWebSiteStatus': 0, 'error_message': str(msg), "existsStatus": 0 } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def submitUserCreation(request): try: try: userID = request.session['userID'] currentACL = ACLManager.loadedACL(userID) data = json.loads(request.body) firstName = data['firstName'] lastName = data['lastName'] email = data['email'] userName = data['userName'] password = data['password'] websitesLimit = data['websitesLimit'] selectedACL = data['selectedACL'] securityLevel = data['securityLevel'] selectedACL = ACL.objects.get(name=selectedACL) if selectedACL.adminStatus == 1: type = 1 else: type = 3 if securityLevel == 'LOW': securityLevel = secMiddleware.LOW else: securityLevel = secMiddleware.HIGH token = hashPassword.generateToken(userName, password) password = hashPassword.hash_password(password) currentAdmin = Administrator.objects.get(pk=userID) if ACLManager.websitesLimitCheck(currentAdmin, websitesLimit) == 0: data_ret = { 'status': 0, 'createStatus': 0, 'error_message': "You've reached maximum websites limit as a reseller." } final_json = json.dumps(data_ret) return HttpResponse(final_json) if currentACL['admin'] == 1: newAdmin = Administrator( firstName=firstName, lastName=lastName, email=email, type=type, userName=userName, password=password, initWebsitesLimit=websitesLimit, owner=currentAdmin.pk, acl=selectedACL, token=token, securityLevel=securityLevel, ) newAdmin.save() elif currentACL['changeUserACL'] == 1: newAdmin = Administrator( firstName=firstName, lastName=lastName, email=email, type=type, userName=userName, password=password, initWebsitesLimit=websitesLimit, owner=currentAdmin.pk, acl=selectedACL, token=token, securityLevel=securityLevel, ) newAdmin.save() elif currentACL['createNewUser'] == 1: newAdmin = Administrator( firstName=firstName, lastName=lastName, email=email, type=type, userName=userName, password=password, initWebsitesLimit=websitesLimit, owner=currentAdmin.pk, acl=selectedACL, token=token, securityLevel=securityLevel, ) newAdmin.save() else: data_ret = { 'status': 0, 'createStatus': 0, 'error_message': "You are not authorized to access this resource." } final_json = json.dumps(data_ret) return HttpResponse(final_json) data_ret = { 'status': 1, 'createStatus': 1, 'error_message': "None" } final_json = json.dumps(data_ret) return HttpResponse(final_json) except BaseException, msg: data_ret = { 'status': 0, 'createStatus': 0, 'error_message': str(msg) } json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: data_ret = { 'status': 0, 'createStatus': 0, 'error_message': "Not logged in as admin", } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def saveModifications(request): try: val = request.session['userID'] try: if request.method == 'POST': data = json.loads(request.body) accountUsername = data['accountUsername'] firstName = data['firstName'] lastName = data['lastName'] email = data['email'] securityLevel = data['securityLevel'] user = Administrator.objects.get(userName=accountUsername) currentACL = ACLManager.loadedACL(val) loggedUser = Administrator.objects.get(pk=val) if currentACL['admin'] == 1: pass elif user.owner == loggedUser.pk: pass elif user.pk == loggedUser.pk: pass else: data_ret = { 'fetchStatus': 0, 'error_message': 'Un-authorized access.' } json_data = json.dumps(data_ret) return HttpResponse(json_data) token = hashPassword.generateToken(accountUsername, data['password']) password = hashPassword.hash_password(data['password']) user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.token = token user.type = 0 if securityLevel == 'LOW': user.securityLevel = secMiddleware.LOW else: user.securityLevel = secMiddleware.HIGH user.save() data_ret = { 'status': 1, 'saveStatus': 1, 'error_message': 'None' } json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = { 'status': 0, 'saveStatus': 0, 'error_message': str(msg) } json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: data_ret = { 'status': 0, 'saveStatus': 0, 'error_message': "Not logged in as admin", } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def submitUserCreation(request): try: val = request.session['userID'] try: currentAdmin = Administrator.objects.get(pk=val) childUsers = Administrator.objects.filter( owner=currentAdmin.pk).count() if currentAdmin.type == 1: pass else: if currentAdmin.initWebsitesLimit == 0: pass elif currentAdmin.initUserAccountsLimit == childUsers: data_ret = { 'createStatus': 0, 'error_message': "Reached Maximum User Creation Limit" } final_json = json.dumps(data_ret) return HttpResponse(final_json) else: pass if request.method == 'POST': data = json.loads(request.body) firstName = data['firstName'] lastName = data['lastName'] email = data['email'] userName = data['userName'] password = data['password'] password = hashPassword.hash_password(password) accountType = data['accountType'] if accountType == "Admin": newAdmin = Administrator(firstName=firstName, lastName=lastName, email=email, type=1, userName=userName, password=password, initWebsitesLimit=0, owner=currentAdmin.pk) newAdmin.save() currentAdmin.save() data_ret = {'createStatus': 1, 'error_message': "None"} final_json = json.dumps(data_ret) return HttpResponse(final_json) elif accountType == "Normal User": newAdmin = Administrator(firstName=firstName, lastName=lastName, email=email, type=3, userName=userName, password=password, initWebsitesLimit=0, owner=currentAdmin.pk) newAdmin.save() currentAdmin.save() data_ret = {'createStatus': 1, 'error_message': "None"} final_json = json.dumps(data_ret) return HttpResponse(final_json) else: websitesLimit = data['websitesLimit'] userAccountsLimit = 0 newAdmin = Administrator( firstName=firstName, lastName=lastName, email=email, type=2, userName=userName, password=password, initWebsitesLimit=websitesLimit, initUserAccountsLimit=userAccountsLimit, owner=currentAdmin.pk) newAdmin.save() currentAdmin.save() data_ret = {'createStatus': 1, 'error_message': "None"} final_json = json.dumps(data_ret) return HttpResponse(final_json) except BaseException, msg: data_ret = {'createStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: data_ret = { 'createStatus': 0, 'error_message': "Not logged in as admin", } json_data = json.dumps(data_ret) return HttpResponse(json_data)
def createWebsite(request): try: if request.method == 'POST': data = json.loads(request.body) adminUser = data['adminUser'] adminPass = data['adminPass'] domain = data['domainName'] adminEmail = data['ownerEmail'] packageName = data['packageName'] websiteOwner = data['websiteOwner'] ownerPassword = data['ownerPassword'] try: website = Websites.objects.get(domain=domain) data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Website Already Exists"} json_data = json.dumps(data_ret) return HttpResponse(json_data) except: pass phpSelection = "PHP 7.0" admin = Administrator.objects.get(userName=adminUser) if hashPassword.check_password(admin.password, adminPass): pass else: data_ret = {"existsStatus": 0, 'createWebSiteStatus': 0, 'error_message': "Could not authorize access to API"} json_data = json.dumps(data_ret) return HttpResponse(json_data) if adminEmail is None: adminEmail = "*****@*****.**" try: websiteOwn = Administrator(userName=websiteOwner, password=hashPassword.hash_password(ownerPassword), email=adminEmail, type=3, owner=admin.pk, initWebsitesLimit=1) websiteOwn.save() except BaseException,msg: pass if virtualHostUtilities.checkIfVirtualHostExists(domain) == 1: data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "This domain already exists in Litespeed Configurations, first delete the domain to perform sweap."} json_data = json.dumps(data_ret) return HttpResponse(json_data) if virtualHostUtilities.createDirectoryForVirtualHost(domain, adminEmail, phpSelection) != 1: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "Can not create configurations, see CyberCP main log file."} json_data = json.dumps(data_ret) return HttpResponse(json_data) if virtualHostUtilities.createConfigInMainVirtualHostFile(domain) != 1: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) data_ret = {"existsStatus": 1, 'createWebSiteStatus': 0, 'error_message': "Can not create configurations, see CyberCP main log file."} json_data = json.dumps(data_ret) return HttpResponse(json_data) installUtilities.reStartLiteSpeed() selectedPackage = Package.objects.get(packageName=packageName) websiteOwn = Administrator.objects.get(userName=websiteOwner) website = Websites(admin=websiteOwn, package=selectedPackage, domain=domain, adminEmail=adminEmail, phpSelection=phpSelection, ssl=0) website.save() shutil.copy("/usr/local/CyberCP/index.html", "/home/" + domain + "/public_html/index.html") data_ret = {'createWebSiteStatus': 1, 'error_message': "None", "existsStatus": 0} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: numberOfWebsites = Websites.objects.count()+ChildDomains.objects.count() virtualHostUtilities.deleteVirtualHostConfigurations(domain, numberOfWebsites) data_ret = {'createWebSiteStatus': 0, 'error_message': str(msg), "existsStatus": 0} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def loadLoginPage(request): try: userID = request.session['userID'] admin = Administrator.objects.get(pk=userID) cpuRamDisk = SystemInformation.cpuRamDisk() finaData = {"type": admin.type, 'ramUsage': cpuRamDisk['ramUsage'], 'cpuUsage': cpuRamDisk['cpuUsage'], 'diskUsage': cpuRamDisk['diskUsage']} return render(request, 'baseTemplate/homePage.html', finaData) except KeyError: numberOfAdministrator = Administrator.objects.count() password = hashPassword.hash_password('1234567') if numberOfAdministrator == 0: email = '*****@*****.**' admin = Administrator(userName="******", password=password, type=1,email=email, firstName="Cyber",lastName="Panel") admin.save() vers = version(currentVersion="1.6",build=0) vers.save() package = Package(admin=admin, packageName="Default", diskSpace=1000, bandwidth=1000, ftpAccounts=1000, dataBases=1000, emailAccounts=1000,allowedDomains=20) package.save() newFWRule = FirewallRules(name="panel", proto="tcp", port="8090") newFWRule.save() newFWRule = FirewallRules(name="http", proto="tcp", port="80") newFWRule.save() newFWRule = FirewallRules(name="https", proto="tcp", port="443") newFWRule.save() newFWRule = FirewallRules(name="ftp", proto="tcp", port="21") newFWRule.save() newFWRule = FirewallRules(name="smtp", proto="tcp", port="25") newFWRule.save() newFWRule = FirewallRules(name="smtps", proto="tcp", port="587") newFWRule.save() newFWRule = FirewallRules(name="ssmtp", proto="tcp", port="465") newFWRule.save() newFWRule = FirewallRules(name="pop3", proto="tcp", port="110") newFWRule.save() newFWRule = FirewallRules(name="imap", proto="tcp", port="143") newFWRule.save() newFWRule = FirewallRules(name="simap", proto="tcp", port="993") newFWRule.save() newFWRule = FirewallRules(name="dns", proto="udp", port="53") newFWRule.save() newFWRule = FirewallRules(name="dnstcp", proto="tcp", port="53") newFWRule.save() newFWRule = FirewallRules(name="ftptls", proto="tcp", port="40110-40210") newFWRule.save() return render(request, 'loginSystem/login.html', {}) else: return render(request, 'loginSystem/login.html', {})
def saveModifications(request): try: val = request.session['userID'] try: if request.method == 'POST': data = json.loads(request.body) accountUsername = data['accountUsername'] firstName = data['firstName'] lastName = data['lastName'] email = data['email'] user = Administrator.objects.get(userName=accountUsername) password = hashPassword.hash_password(data['password']) if user.type == 1: userAccountsLimit = 0 websitesLimit = 0 user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.initUserAccountsLimit = userAccountsLimit user.type = 1 user.save() data_ret = {'saveStatus': 1, 'error_message': 'None'} json_data = json.dumps(data_ret) return HttpResponse(json_data) if data['accountType'] == "Reseller": userAccountsLimit = data['userAccountsLimit'] websitesLimit = data['websitesLimit'] user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.initUserAccountsLimit = userAccountsLimit user.type = 2 user.save() elif data['accountType'] == "Normal User": websitesLimit = data['websitesLimit'] user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.type = 3 user.save() else: userAccountsLimit = 0 websitesLimit = 0 user.firstName = firstName user.lastName = lastName user.email = email user.password = password user.initWebsitesLimit = websitesLimit user.initUserAccountsLimit = userAccountsLimit user.type = 1 user.save() data_ret = {'saveStatus': 1, 'error_message': 'None'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: data_ret = {'saveStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: data_ret = {'saveStatus': 0, 'error_message': "Not logged in as admin",} json_data = json.dumps(data_ret) return HttpResponse(json_data)
def submitUserCreation(request): try: val = request.session['userID'] try: currentAdmin = Administrator.objects.get(pk=val) childUsers = Administrator.objects.filter(owner=currentAdmin.pk).count() if currentAdmin.type == 1: pass else: if currentAdmin.initWebsitesLimit == 0: pass elif currentAdmin.initUserAccountsLimit == childUsers: data_ret = {'createStatus': 0, 'error_message': "Reached Maximum User Creation Limit"} final_json = json.dumps(data_ret) return HttpResponse(final_json) else: pass if request.method == 'POST': data = json.loads(request.body) firstName = data['firstName'] lastName = data['lastName'] email = data['email'] userName = data['userName'] password = data['password'] password = hashPassword.hash_password(password) accountType = data['accountType'] if accountType == "Admin": newAdmin = Administrator(firstName=firstName, lastName=lastName, email=email, type=1, userName=userName, password=password, initWebsitesLimit=0, owner=currentAdmin.pk ) newAdmin.save() currentAdmin.save() data_ret = {'createStatus': 1, 'error_message': "None"} final_json = json.dumps(data_ret) return HttpResponse(final_json) elif accountType == "Normal User": websitesLimit = data['websitesLimit'] newAdmin = Administrator(firstName=firstName, lastName=lastName, email=email, type=3, userName=userName, password=password, initWebsitesLimit=websitesLimit, owner=currentAdmin.pk ) newAdmin.save() currentAdmin.save() data_ret = {'createStatus': 1, 'error_message': "None"} final_json = json.dumps(data_ret) return HttpResponse(final_json) else: websitesLimit = data['websitesLimit'] userAccountsLimit = data['userAccountsLimit'] newAdmin = Administrator(firstName=firstName, lastName=lastName, email=email, type=2, userName=userName, password=password, initWebsitesLimit=websitesLimit, initUserAccountsLimit=userAccountsLimit, owner=currentAdmin.pk ) newAdmin.save() currentAdmin.save() data_ret = {'createStatus': 1, 'error_message': "None"} final_json = json.dumps(data_ret) return HttpResponse(final_json) except BaseException, msg: data_ret = {'createStatus': 0, 'error_message': str(msg)} json_data = json.dumps(data_ret) return HttpResponse(json_data) except KeyError: data_ret = {'createStatus': 0, 'error_message': "Not logged in as admin",} json_data = json.dumps(data_ret) return HttpResponse(json_data)